Sie arbeiten in Excel derzeit noch mit zahlreichen Arbeitsblättern, die noch alte DM-Formatierungen enthalten. Nun suchen Sie eine Möglichkeit, die Umstellung auf den Euro rasch und möglichst automatisch zu erledigen. Neben den Zahlenformaten müssen Sie gleichzeitig auch die Werte korrekt umrechnen.

Mit einem VBA-Makro können Sie diese Aufgabe zum größten Teil automatisch durchführen. Öffnen Sie eine leere Arbeitsmappe in Excel und führen Sie den Befehl “Extras | Makro | Makros” aus. Geben Sie einen Namen für das Makro ein, zum Beispiel “euro_convert”, und klicken Sie auf die Schaltfläche “Erstellen”. Im VBA-Editor geben Sie die folgenden Makrozeilen ein:

Sub euro_convert()
Dim mBer, mObj As Range
ActiveSheet.Range( A1 ).Select

Set mBer = Range(Cells(1, 1), Cells.SpecialCells(xlCellTypeLastCell))
For Each mObj In mBer

If Not IsEmpty(mObj) Then

If IsNumeric(mObj.Value) Then

If (mObj.Style = \”Currency\” ) Or (InStr(mObj.NumberFormat Local, \”DM\”) > 0) Then
form = mObj.NumberFormatLocal
n = InStr(form, \”DM\”)

If n > 0 Then
mObj.NumberFormatLocal= Left(form, n – 1) + \”€\” + Right(form, Len(form) – n – 1)
If mObj.HasFormula = False Then mObj.Value = mObj.Value / 1.95583
End If

form = mObj.NumberFormatLocal
n = InStr(form, \”DM\”)

If n > 0 Then
mObj.NumberFormatLocal= Left(form, n – 1) + \”€\” + Right(form, Len(form) – n – 1)
End If

If mObj.Style = \”Currency\” Then mObj.Number FormatLocal = \”#.##0,00 €\”

End If
End If
End If
Next
End Sub

Nach der Definition der nötigen Variablen ermittelt das Makro zunächst den genutzten Bereich auf dem Arbeitsblatt und weist ihn der Variablen “mBer” zu. Nun durchläuft es mit einer Schleife alle Zellen in diesem Bereich. Mit mehreren Bedingungen prüft es nacheinander, ob die jeweilige Zelle einen Wert enthält und ob dieser numerisch ist.

Der nächste Befehl testet, ob der Zelle entweder eine Formatvorlage mit einem Währungsformat zugewiesen ist oder ob das Zahlenformat der Zelle eine DM-Formatierung enthält. Bei diesem Vergleich müssen Sie unbedingt die Eigenschaft “NumberFormatLocal” verwenden, weil Sie sonst bei der Eigenschaft “NumberFormat” eine allgemeine Dollar-Formatierung erhalten. Erst durch die Ländereinstellungen Ihres Systems wird die Anzeige in DM realisiert.

Jetzt sucht das Makro die Position, an der das Zahlenformat eine DM-Formatierung enthält und ersetzt “DM” durch “€”. Falls die Zelle keine Formel enthält, wird der enthaltene numerische Wert mit dem offiziellen Umrechnungskurs von 1,95583 DM für einen Euro umgerechnet.

Anschließend erfolgt eine weitere Prüfung des Zahlenformats nach vorhandenen DM-Formatierungen. Bei Bedarf ändert das Makro diese Formatierungen auf Euro. Dadurch werden auch solche Zahlenformate korrekt umgestellt, die unterschiedliche Darstellungen für positive und negative Werte verwenden. Falls die betroffene Zelle mit einer Formatvorlage versehen ist, erhält sie eine ganz normale Euro-Formatierung.

Als nächstes beenden Sie den VBA-Editor und speichern die Excel-Arbeitsmappe. Jetzt können Sie zusätzlich eine weitere Arbeitsmappe öffnen, in der Sie ebenfalls einzelne Tabellen auf den Euro umstellen möchten. Wenn beide Arbeitsmappen geöffnet sind, haben Sie in beiden gleichzeitig Zugriff auf das neue Makro. Auf diese Weise sparen Sie Zeit und müssen das Makro nicht unnötig in alle Arbeitsmappen kopieren.

Wenn Sie Formeln verwenden, die mit Bezügen auf andere Tabellen oder externe Dateien arbeiten, müssen Sie zuerst diese anderen Arbeitsblätter mit dem Makro konvertieren. Bei der Arbeit mit benutzerdefinierten Formaten sollten Sie prüfen, ob das Makro alle Formate richtig umstellen kann. Falls Sie in den Arbeitsblättern mit verschiedenen Währungen arbeiten, müssen Sie das Makro entsprechend erweitern.

Ähnliche Beiträge:

Gilt für: Excel 97, Excel 2000