AW: Euro - SFR Format per Makro
07.09.2007 16:31:05
fcs
Hallo gio,
der einfachste Weg dürfte sein, dass du für die Währungsfelder, deren Währung umgeschaltet werden soll eine spezielle Formatvorlage (Style) anlegst.
Diese Formatvorlage weist du dann allen Zellen zu, deren Währung umgeschaltet werden soll.
Per Makro, dass auf die Eingabe des Landes (Schweiz oder EuroZone) in eine Zelle reagiert wird das NummerFormat der Formatvorlage geändert, wobei dann automatisch auch alle Zellen die mit dieser Formatvorlage formatiert sind angepasst werden.
Nachfolgend Makros um die Formatvorlage einmalig im aktiven Blatt anzulegen und die Makros zum Umschalten der Währung. Die Formatvorlage wird dabei so eingerichtet, dass nur das Zahlenformat geändert wird. Alle anderen Formate der Zelle bleiben unverändert.
Die Makros zum ändern der Währung muss du im VBA-Editor unter der Tabelle einfügen, in der in Zelle A1 Schweiz/EuroZone eingetragen wird.
Gruß
Franz
Sub FormatVorlageEUR_SFR_anlegen()
' Formatvorlage EUR_SFR erzeugen, Vorlage wirkt sich nur auf die Währungsdarstellung aus
' Alle anderen Zellformate bleiben erhalten
ActiveWorkbook.Styles.Add Name:="EUR_SFR"
With ActiveWorkbook.Styles("EUR_SFR")
.IncludeNumber = True
.IncludeFont = False
.IncludeAlignment = False
.IncludeBorder = False
.IncludePatterns = False
.IncludeProtection = False
End With
ActiveWorkbook.Styles("EUR_SFR").NumberFormat = "#,##0.00 "
End Sub
'Makros zum Umschalten der Währung
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Select Case Target.Value
Case "EuroZone"
Call WaehrungUmschalten("EUR_SFR", "#,##0.00 ")
Case "Schweiz"
Call WaehrungUmschalten("EUR_SFR", "#,##0.00"" SFR""")
Case Else
'do nothing
End Select
End If
End Sub
Private Sub WaehrungUmschalten(NameFormatvorlage As String, Waehrungsformat As String)
ActiveWorkbook.Styles(NameFormatvorlage).NumberFormat = Waehrungsformat
End Sub