Geldbetrag in anderer Spalte automatisch als Betrag in Worten anzeigen, Excel?
Moinsen,
ich möchte in Excel etwas automatisieren.
Ich habe beispielsweise einen Wert von 300€ in Feld D2 und möchte in Feld D3 einstellen, das automatisch der Wert 300 in Worten also: "dreihundert" erscheint.
Freue mich über jede Hilfe
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
Das Problem hatte ich anno 1988 mit diesem Makro, in der alten XLM-Sprache für Zahlen bis 999 Mrd gelöst.
Sorry, hilft dir hier nicht mehr weiter als: ja das Problem ist auf vielfältige Weise mit Code zu lösen.
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