cambio formato



  • cambio formato
    di alessio (utente non iscritto) data: 03/04/2014 16:08:44

    salve,
    ho su un foglio Excel alcuni dati importati di formato general scritti cosi:

    €2,765.54 io vorrei farlo diventare €2.765,54

    allora facendo sostituisci le , con niente e poi sostituisci i punti con le virgole mi funziona mettendomi come valuta.

    creando la macro pero' non mi funziona ma mi resta 2765,54 e mi dice numero memorizzato come testo.

    questa e' la mia macro
     
    Sub Macro2()
    '
    ' Macro2 Macro
    '
    
    '
        Range("I5:Q17").Select
        Selection.Replace What:=",", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    End Sub



  • di lepat (utente non iscritto) data: 03/04/2014 19:18:39

    invece di fare sostituzioni prova a cambiare il formato, magari facendolo personalizzato, se non riesci allega un file di esempio



  • di alessio (utente non iscritto) data: 03/04/2014 20:12:48

    ho provato a cambiare formato ma non riesco , non me lo cambia oppure non è quello che voglio.

    passare da € 2,500.00 ad 2.500,00 in formato valuta



  • di Mister_x (utente non iscritto) data: 04/04/2014 00:38:35

    ciao

    restando che tu devi sostituire tutti i valori compresi nel range("I5:Q17") la sub in questione e' pressapoco quella postata sotto da inserire nel foglio

    ciao
     
    Option Explicit
    
    Sub Valuta_€()
    Dim celle As Range
    Dim cella As Variant
    Dim Rig, Col As Long
    Set celle = Range("I5:Q17")
    With Application
     For Each cella In celle
      Rig = cella.Row
      Col = cella.Column
      Cells(Rig, Col).NumberFormat = "$ #,##0.00"
      Cells(Rig, Col) = .Substitute(.Substitute(cella, ",", ""), ".", ",") * 1
     Next
    End With
    Set celle = Nothing
    End Sub
    






  • di alessio (utente non iscritto) data: 04/04/2014 09:02:08

    ciao Mister_x,
    ho provato il tuo codice ma mi da errore.. "Tipo non corrisponde"
    questi sono alcuni dei valori che ho in formato general
    €2,765.54 €12,642.46



  • di Mister_x (utente non iscritto) data: 04/04/2014 10:12:21

    ciao

    allora stando all'errore dato presumo che tu in quel range() abbia celle vuote o celle con parole o formule quindi si puo' valutare la sub in un altro modo
    prova questa modifica, altrimenti bisogna proprio capire cosa veramente tu hai in quel range(), postando un file con inserito tutto quello che veramente ce

    ciao

     
    Option Explicit
    
    Sub Valuta_€()
    Dim celle As Range
    Dim cella As Variant
    Dim Rig, Col As Long
    Set celle = Range("I5:Q17")
    With Application
     For Each cella In celle
     If IsNumeric(cella) And cella <> "" Then
      Rig = cella.Row
      Col = cella.Column
      Cells(Rig, Col).NumberFormat = "$ #,##0.00"
      Cells(Rig, Col) = .Substitute(.Substitute(cella, ",", ""), ".", ",") * 1
     End If
     Next
    End With
    Set celle = Nothing
    End Sub
     
    






  • di Grograman (utente non iscritto) data: 04/04/2014 10:39:00

    Ciao!
    Giusto una rivista all'ultimo codice postato (non ha senso ricorrere a due variabili long quando se dichiariamo cella come range ha già le caratteristiche richieste )

    Fatto salvo che non ho visto eventuali file di esempio e probabilmente applicando il metodo evaluate al range intero si potrebbe snellire eliminando il ciclo!
     
    Option Explicit
    Sub Valuta_€()
    Dim celle As Range, cella As Range
    Set celle = Range("I5:Q17")
      With Application
       For Each cella In celle
        If IsNumeric(cella) And cella <> "" Then
          cella.NumberFormat = "$ #,##0.00"
          cella = .Substitute(.Substitute(cella, ",", ""), ".", ",") * 1
        End If
       Next
      End With
    Set celle = Nothing
    End Sub
    



  • di alessio (utente non iscritto) data: 04/04/2014 12:33:17

    funziona grazie!!!