Cambia simbolo valuta
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

Argomenti correlati
A volta capita nei fogli di calcolo di dover esprimere i dati in una valuta locale e che questa possa diversa di volta in volta: in casi come questi è ovviamente utile indicare la valuta della cifra.
Si possono adottare diverse "strategie" per questo: una è quella di mettere la descrizione della valuta in una cella separata e far variare questa con formule, ma si può anche trasformare il valore in testo e aggiungere il simbolo della valuta in colonne separate.
La soluzione più elegante è forse quella di variare il formato della cella, in questo caso però dobbiamo usare una procedura: anche scrivendo una funzione VBA questa non può variare il formato delle celle.

Nell'esempio allegato il formato della valuta è impostato con un formato personalizzato, utilizzando il formato:
#.##0,00 [$EUR];[Rosso]- #.##0,00 [$EUR];
come nell'esempio qui sotto. Impostare il formato in questo modo consente di mettere il simbolo della valuta a destra del numero.



Questa è la procedura che sostituisce il simbolo della valuta nel formato con il nuovo impostato.
Sub Cambia_Simbolo_Valuta(Intervallo As Range, Simbolo As String)
  For Each Cella In Intervallo
    Pi = InStr(Cella.NumberFormat, "[$")
    If (Pi > 0) Then
      Pf = InStr(Pi + 1, Cella.NumberFormat, "]")
      SimboloPrec = Mid(Cella.NumberFormat, Pi + 2, Pf - Pi - 2)
      Formato = Replace(Cella.NumberFormat, SimboloPrec, Simbolo)
      Cella.NumberFormat = Formato
    End If
  Next Cella
End Sub

Come dicevamo, non potendo utilizzare una funzione per modificare il formato, dobbiamo usare l'espediente di richiamare la funzione al variare di una cella. Nel nostro esempio al variare della valuta, richiameremo la procedura intercettando l'evento Change.
Private Sub Worksheet_Change(ByVal Target As Range)
  If (Target.Address = "$E$12") Then
    Dim SiglaValuta As String
    Dim Cambio As Double
    SiglaValuta = Mid(Range("E13").Value, 5, 3)
    Cambia_Simbolo_Valuta Range("F13:F21"), SiglaValuta
  End If
End Sub


L'esempio completo é scaricabile da questo link: Es420.xlsm (a questo link le info per attivare le macro se risultano bloccate)

Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.
Per dubbi o domande potete scriverci a domande@macrofacili.it, sulla nostra pagina FB MacroFacili.it o sul gruppo FB Excel, macro e formule.
 

data4idea srls - PIva 01881000937 - info@data4idea.it