Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahlennamen

Forumthread: Zahlennamen

Zahlennamen
07.04.2022 13:37:12
Thomas
Ein Versuch mit möglichst wenig Code die Zahlennamen von Zahlen darzustellen.
1. Code in ein Modul einfügen
2. Funktionsaufruf: =ZAHLENNAME(Zahl)
3. Beispiel: =ZAHLENNAME(348828423)
4. Ergebnis "DreiHundertAchtUndVierzigMillionen AchtHundertAchtUndZwanzigTausend VierHundertDreiUndZwanzig"
Thomas Schnitzler, 13:26 Donnerstag, 7. April 2022

Function Zahlenname$(ByVal Z)
On Error GoTo FEHLER
Dim ZAHL, NAME, TMP$
TMP = Format(Z, "000,000,000,000,000,000,000,000,000,000")
Debug.Print TMP
ZAHL = Split(TMP, ".")
NAME = Split("Quadrilliarde|n,Quadrillion|en,Trilliarde|n,Trillion|en,Billiarde|n,Billion|en,Milliarde|n,Million|en,Tausend|,Hundert|", ",")
For I = 0 To 9
If I 

Public Function Hunderter$(ByVal ZAHL)
On Error GoTo FEHLER
Dim ARR, L$, R$
Select Case ZAHL
Case 1 To 19 'Eins bis Neunzehn
ARR = Split(",Eins,Zwei,Drei,Vier,Fünf,Sechs,Sieben,Acht,Neun,Zehn,Elf,Zwölf,Dreizehn,Vierzehn,Fünfzehn,Sechzehn,Siebzehn,Achtzehn,Neunzehn", ",")
Hunderter = ARR(ZAHL)
Case 20 To 99 'Zwanzig bis NeunUndNeunzig
ARR = Split(",,Zwanzig,Dreißig,Vierzig,Fünfzig,Sechzig,Siebzig,Achtzig,Neunzig", ",")
R = ARR(Val(Left(ZAHL, 1)))
ARR = Split(",Ein,Zwei,Drei,Vier,Fünf,Sechs,Sieben,Acht,Neun", ",")
L = ARR(Val(Right(ZAHL, 1)))
Hunderter = L & IIf(L = "", "", "Und") & R
Case 100 To 999 'EinHundert bis NeunHundertNeunUndNeunzig
ARR = Split(",Ein,Zwei,Drei,Vier,Fünf,Sechs,Sieben,Acht,Neun", ",")
L = ARR(Left(ZAHL, 1)) & "Hundert"
R = Hunderter(Right(ZAHL, 2))
Hunderter = L & R
End Select
Exit Function
FEHLER:
Debug.Print Err.Number & ": " & Err.Description
End Function
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Aus 123,55 wird einhundertvierundzwanzig...
07.04.2022 13:48:16
{Boris}
Hi,
...und bei mir sprang der Debugger direkt an, weil Option Explicit ein paar Variablendeklarationen vermisst ;-)
Aber gut - ist halt auf Ganzzahlen ausgelegt :-)
Danke für den Code!
VG, Boris
AW: Aus 123,55 wird einhundertvierundzwanzig...
07.04.2022 14:35:46
Thomas
Hallo Boris, mit meiner Funktion "nth" ist das kein Problem:

Public Function Nth$(ByVal T$, ByVal I%, Optional S$ = " ")
Dim ARR
ARR = Split(T, S)
If I > UBound(ARR) Then Exit Function
If I 
[A1]=742,85
[B1]==Zahlenname(nth(A1;0;","))&" Komma "&Zahlenname(nth(A1;1;",")) => SiebenHundertZweiUndVierzig Komma FünfUndAchtzig
Anzeige
AW: Zahlennamen
07.04.2022 13:48:22
Thomas
Anstatt "Singular: Million statt Millionen etc." muss es heißen "'Plural: Millionen statt Million etc."
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige