Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige