Zahlen in Wörter umwandeln in Microsoft Excel – Mit oder ohne Währung (Inkl. VBA-Code)

Melden

Hier ist ein ausführliches Tutorial, wie du Zahlen in Microsoft Excel automatisch in geschriebene Worte umwandeln kannst. Da Excel hierfür keine Standardfunktion besitzt, nutzen wir ein kleines VBA-Skript (Makro).


Das Umwandeln von Zahlen in Text (z. B. „105,20“ in „Einhundertfünf Euro und Zwanzig Cent“) ist besonders nützlich für Rechnungen, Schecks oder offizielle Dokumente. In diesem Tutorial lernst du, wie du diese Funktion mithilfe von VBA (Visual Basic for Applications) in Excel nachrüstest.

Schritt 1: Den VBA-Editor öffnen

Da Excel keine integrierte Funktion wie =ZAHLINWORT() hat, erstellen wir unsere eigene.

  1. Öffne deine Excel-Datei.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke im Menü auf Einfügen -> Modul.
  4. Ein leeres weißes Fenster erscheint. Hier kopierst du den folgenden Code hinein.

Schritt 2: Der VBA-Code

Kopiere diesen Code vollständig in das neue Modul-Fenster:

Function ZahlInWorten(ByVal n As Double, Optional MitWaehrung As Boolean = True) As String
    Dim Einheiten As Variant
    Dim Zehner As Variant
    Dim Hunderter As Variant
    Dim Ergebnis As String
    Dim Cent As Integer
    Dim Ganzzahl As Long

    ' Definition der Bezeichnungen
    Einheiten = Array("", "Eins", "Zwei", "Drei", "Vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "Zehn", "Elf", "Zwölf", "Dreizehn", "Vierzehn", "Fünfzehn", "Sechzehn", "Siebzehn", "Achtzehn", "Neunzehn")
    Zehner = Array("", "", "Zwanzig", "Dreißig", "Vierzig", "Fünfzig", "Sechzig", "Siebzig", "Achtzig", "Neunzig")

    ' Vorbereitung: Ganzzahl und Cent trennen
    Ganzzahl = Int(n)
    Cent = Round((n - Ganzzahl) * 100, 0)

    ' Umwandlung der Ganzzahl (vereinfacht für Werte bis 999.999)
    Ergebnis = Umwandeln(Ganzzahl)

    If MitWaehrung Then
        If Ganzzahl = 1 Then
            Ergebnis = "Eins Euro"
        Else
            Ergebnis = Ergebnis & " Euro"
        End If

        If Cent > 0 Then
            Ergebnis = Ergebnis & " und " & Cent & " Cent"
        End If
    Else
        If Cent > 0 Then
            Ergebnis = Ergebnis & " Komma " & Cent
        End If
    End If

    ZahlInWorten = Ergebnis
End Function

Private Function Umwandeln(ByVal n As Long) As String
    Dim Einheiten As Variant
    Dim Zehner As Variant
    Dim S As String

    Einheiten = Array("", "Eins", "Zwei", "Drei", "Vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "Zehn", "Elf", "Zwölf", "Dreizehn", "Vierzehn", "Fünfzehn", "Sechzehn", "Siebzehn", "Achtzehn", "Neunzehn")
    Zehner = Array("", "", "Zwanzig", "Dreißig", "Vierzig", "Fünfzig", "Sechzig", "Siebzig", "Achtzig", "Neunzig")

    Select Case n
        Case 0
            S = "Null"
        Case 1 To 19
            S = Einheiten(n)
        Case 20 To 99
            S = IIf(n Mod 10 > 0, Einheiten(n Mod 10) & "und", "") & Zehner(n \ 10)
        Case 100 To 999
            S = Einheiten(n \ 100) & "hundert" & IIf(n Mod 100 > 0, Umwandeln(n Mod 100), "")
        Case 1000 To 999999
            S = Umwandeln(n \ 1000) & "tausend" & IIf(n Mod 1000 > 0, Umwandeln(n Mod 1000), "")
        Case Else
            S = "Zahl zu groß"
    End Select

    ' Korrektur für "Einshundert" -> "Einhundert"
    If Left(S, 4) = "Eins" And Len(S) > 4 Then
        If Mid(S, 5, 7) = "hundert" Or Mid(S, 5, 7) = "tausend" Then
            S = Mid(S, 2)
        End If
    End If

    Umwandeln = S
End Function

Schritt 3: Die Funktion in Excel nutzen

Nachdem du den Code eingefügt hast, kannst du das VBA-Fenster schließen. Deine neue Funktion steht nun wie eine normale Excel-Formel zur Verfügung.

Option A: Mit Währung (Euro/Cent)

Gib in eine beliebige Zelle ein: =ZahlInWorten(A1) (Wenn in A1 die Zahl 150,50 steht, erscheint: „Einhundertfünfzig Euro und 50 Cent“)

Option B: Ohne Währung (Nur die Zahl)

Gib in eine beliebige Zelle ein: =ZahlInWorten(A1; FALSCH) (Ergebnis: „Einhundertfünfzig Komma 50“)

Schritt 4: Datei richtig speichern

Damit das Makro auch beim nächsten Mal funktioniert, musst du die Datei in einem speziellen Format speichern:

  1. Gehe auf Datei -> Speichern unter.
  2. Wähle als Dateityp Excel-Arbeitsmappe mit Makros (.xlsm).

Tipps zur Anpassung

  • Währung ändern: Wenn du "Dollar" statt "Euro" möchtest, kannst du im Code einfach das Wort " Euro" durch " Dollar" ersetzen.
  • Großschreibung: Die Funktion gibt den Text so aus, wie er im Code definiert ist. Du kannst die Namen der Zahlen im Code (z.B. "Einhundert") beliebig anpassen.

Download-Hinweis: Falls du dieses Tutorial als Vorlage nutzt, kopiere den obigen Code-Block einfach in eine Textdatei und nenne sie ZahlInWorten.bas oder füge ihn direkt in deine Excel-Datei ein.

0