Geldbetrag in anderer Spalte automatisch als Betrag in Worten anzeigen, Excel?

3 Antworten

https://www.google.com/search?q=vba+zahl+in+worten

liefert Dutzende von Treffern. Bei vielen davon werden hauptsächlich Fehler diskutiert, einige scheinen mir auf den ersten Blick brauchbar zu sein (ich habe keine der Lösungen im Detail analysiert oder/und ausprobiert). Bei AddIns wäre ich mir ein wenig sicherer, dass sie gründlich geprüft und getestet worden sind und deshalb zuverlässiger funktionieren, aber man muss auch etwas mehr vertrauen, dass kein Schadcode eingebaut ist.

In Excel direkt gibt es die Möglichkeit nicht, aber du kannst ein VBA einfügen, dass das möglich machen kann.

Ich hab selbst nicht viel Ahnung davon, aber diesen Code für ein VBA gefunden:

Function ZahlInWorten(ByVal Zahl As Double) As String
    Dim ZahlenText As String
    Dim Einer(0 To 9) As String
    Dim Zehner(10 To 19) As String
    Dim Zehnerzehner(20 To 90 Step 10) As String
    Dim Hunderter(100 To 900 Step 100) As String
    
    ' Einheiten
    Einer(0) = ""
    Einer(1) = "eins"
    Einer(2) = "zwei"
    Einer(3) = "drei"
    Einer(4) = "vier"
    Einer(5) = "fünf"
    Einer(6) = "sechs"
    Einer(7) = "sieben"
    Einer(8) = "acht"
    Einer(9) = "neun"
    
    ' Zehner
    Zehner(10) = "zehn"
    Zehner(11) = "elf"
    Zehner(12) = "zwölf"
    Zehner(13) = "dreizehn"
    Zehner(14) = "vierzehn"
    Zehner(15) = "fünfzehn"
    Zehner(16) = "sechzehn"
    Zehner(17) = "siebzehn"
    Zehner(18) = "achtzehn"
    Zehner(19) = "neunzehn"
    
    ' Zehnerzehner
    Zehnerzehner(20) = "zwanzig"
    Zehnerzehner(30) = "dreißig"
    Zehnerzehner(40) = "vierzig"
    Zehnerzehner(50) = "fünfzig"
    Zehnerzehner(60) = "sechzig"
    Zehnerzehner(70) = "siebzig"
    Zehnerzehner(80) = "achtzig"
    Zehnerzehner(90) = "neunzig"
    
    ' Hunderter
    Hunderter(100) = "einhundert"
    Hunderter(200) = "zweihundert"
    Hunderter(300) = "dreihundert"
    Hunderter(400) = "vierhundert"
    Hunderter(500) = "fünfhundert"
    Hunderter(600) = "sechshundert"
    Hunderter(700) = "siebenhundert"
    Hunderter(800) = "achthundert"
    Hunderter(900) = "neunhundert"
    
    If Zahl = 0 Then
        ZahlInWorten = "null"
        Exit Function
    End If
    
    If Zahl >= 1000 Then
        ZahlInWorten = "Die Zahl ist zu groß!"
        Exit Function
    End If
    
    If Zahl >= 100 Then
        ZahlInWorten = Hunderter(Zahl - (Zahl Mod 100))
        Zahl = Zahl Mod 100
    End If
    
    If Zahl >= 20 Then
        ZahlInWorten = ZahlInWorten & Zehnerzehner(Zahl - (Zahl Mod 10))
        Zahl = Zahl Mod 10
    End If
    
    If Zahl >= 10 Then
        ZahlInWorten = ZahlInWorten & Zehner(Zahl)
        Exit Function
    End If
    
    ZahlInWorten = ZahlInWorten & Einer(Zahl)
End Function
Füge diesen Code in ein VBA-Modul in Excel ein. Dann kannst du in deinem Arbeitsblatt die Funktion `ZahlInWorten` verwenden, um eine Zahl in Wörter umzuwandeln. Zum Beispiel könntest du in Zelle D3 folgendes eingeben: `=ZahlInWorten(D2)` und es wird "dreihundert" ausgegeben, wenn D2 den Wert 300 enthält.

Probier das mal aus, hoffe es klappt.

LG


Bananenmayo  02.05.2024, 11:05

ok hab mir das angesehen und glaube nicht, dass es klappt, also musst du wahrscheinlich selbst den Code dafür schreiben, was ziemlich kompliziert werden dürfte, also musst du wohl leider drauf verzichten

0

Das Problem hatte ich anno 1988 mit diesem Makro, in der alten XLM-Sprache für Zahlen bis 999 Mrd gelöst.

Bild zum Beitrag

Sorry, hilft dir hier nicht mehr weiter als: ja das Problem ist auf vielfältige Weise mit Code zu lösen.

Woher ich das weiß:Berufserfahrung
 - (Microsoft Excel, Formel, Microsoft Office)