Währungsbeträge in Worten
In WIN 7/97 suchte Rudolf Knust nach einer Möglichkeit, Beträge in Excel automatisch in Worten auszudrücken. Das ist mit einer benutzerdefinierten Funktion zu machen. Die Lösung von Manfred Prunner aus Bozen finden Sie unten als Listing abgedruckt, aber auch als ZAHLWORT.XLS auf der aktuellen Monats-CD oder in den WIN-Online-Foren. Einen Import in Excel 97 übersteht das Modul unbeschadet. Wolfgang Klein aus Eckental machte sich ebenfalls die Mühe: Sein Arbeitsblatt NOKOMMA.XLS funktioniert ähnlich, gibt aber die Stellen nach dem Komma nicht in Worten aus.
Dim i%
Funktion ZWort (Zahl Als Doppelt) Als ZeichenF Dim Teil1$; ATeil$; BTeil$; ZahlWort$; Rest%
Wenn Zahl = Schneide (Zahl) Dann Rest = 0 Sonst Rest = Anwendung.Runden ((Zahl - Schneide (Zahl)) * 100; 0) Ende Wenn
beginn: Zahl = Schneide (Zahl) Wenn Zahl = 1 Dann ZWort = “eins“: GeheZu Beenden i = 0 ATeil = Rechts (Zahl; 3) ZWort = Hunderter (ATeil) Wenn Länge (ZnF (Zahl)) < 5 Dann GeheZu Beenden Teil1 = ZWort Zahl = Links (Zahl; Länge (ZnF (Zahl)) - 4) BTeil = Rechts (Zahl; 3) ZWort = Hunderter (BTeil) Wenn ZWort > ““ Dann ZWort = ZWort & “tausend“ ZWort = ZWort & Teil1 Wenn Rechts (ATeil; 3) = 1 Dann ZWort = ZWort & “s“ Wenn Länge (ZnF (Zahl)) < 5 Dann GeheZu Beenden Teil1 = ZWort Zahl = Links (Zahl; Länge (ZnF (Zahl)) - 4) BTeil = Rechts (Zahl; 3) ZWort = Hunderter (BTeil) Wenn BTeil = “1“ Dann ZWort = “eine“ & “million“ & Teil1 Sonst Wenn ZWort > ““ Dann ZWort = ZWort & “millionen“ ZWort = ZWort & Teil1 Ende Wenn Wenn Länge (ZnF (Zahl)) < 5 Dann GeheZu Beenden Teil1 = ZWort Zahl = Links (Zahl; Länge (ZnF (Zahl)) - 4) BTeil = Rechts (Zahl; 3) ZWort = Hunderter (BTeil) Wenn BTeil = “1“ Dann ZWort = “eine“ & “milliarde“ & Teil1 Sonst ZWort = ZWort & “milliarden“ & Teil1 Ende Wenn Beenden: Wenn Rest > 0 Dann ZahlWort = ZWort & “komma“ Wenn Rest < 10 Dann ZahlWort = ZahlWort & “null “ Zahl = Rest Rest = 0 GeheZu beginn Ende Wenn
ZWort = ZahlWort & ZWort Ende Funktion
Funktion Hunderter (Hteil) Dim eZahl%; Ziffer1$; Ziffer2$; Ziffer3$ eZahl = Rechts (Hteil; 1) Hunderter = Einer (eZahl) Ziffer3 = Hunderter Wenn Hteil < 10 Dann Verlasse Funktion eZahl = Rechts (Hteil; 2) Wenn Rechts (Hteil; 2) < 20 Dann Hunderter = Zehner (eZahl) Ziffer1 = Hunderter Wenn Länge (ZnF (Hteil)) < 4 Dann Verlasse Funktion Ende Wenn eZahl = TeilZnF (Hteil; Länge (Hteil) - 1; 1) Wenn Hunderter <> ”” Dann Hunderter = Hunderter & “und“ & Zehner1 (eZahl) Sonst Hunderter = Zehner1 (eZahl) Ziffer1 = Hunderter Ende Wenn Wenn Hteil < 100 Dann Verlasse Funktion
eZahl = TeilZnF (Hteil; Länge (ZnF (Hteil)) - 3; 1) Wenn Rechts (Hteil; 2) < 10 Dann Wenn TeilZnF (Hteil; 2; 1) = 0 Und Rechts (Hteil; 1) = 1 Dann Hunderter = Einer (eZahl) & “hunderteins“ Sonst Hunderter = Einer (eZahl) & “hundert“ & Ziffer3 Ende Wenn SonstWenn Rechts (Hteil; 2) > 9 Und Rechts (Hteil; 2) < 20 Dann Hunderter = Einer (eZahl) & “hundert“ & Ziffer1 Sonst Hunderter = Einer (eZahl) & “hundert“ & Hunderter Ende Wenn Ende Funktion
Funktion Einer (EinerZahl) Prüfe Fall EinerZahl Fall Ist = 1 Einer = “ein“ Fall Ist = 2 Einer = “zwei“ Fall Ist = 3 Einer = “drei“ Fall Ist = 4 Einer = “vier“ Fall Ist = 5 Einer = “fünf“ Fall Ist = 6 Einer = “sechs“ Fall Ist = 7 Einer = “sieben“ Fall Ist = 8 Einer = “acht“ Fall Ist = 9 Einer = “neun“ Ende Prüfe Ende Funktion
Funktion Zehner (ZehnerZahl) Prüfe Fall ZehnerZahl Fall Ist = 10 Zehner = “zehn“ Fall Ist = 11 Zehner = “elf“ Fall Ist = 12 Zehner = “zwölf“ Fall Ist = 13 Zehner = “dreizehn“ Fall Ist = 14 Zehner = “vierzehn“ Fall Ist = 15 Zehner = “fünfzehn“ Fall Ist = 16 Zehner = “sechzehn“ Fall Ist = 17 Zehner = “siebzehn“ Fall Ist = 18 Zehner = “achtzehn“ Fall Ist = 19 Zehner = “neunzehn“ Ende Prüfe Ende Funktion
Funktion Zehner1 (ZehnerZahl) Prüfe Fall ZehnerZahl Fall Ist = 2 Zehner1 = “zwanzig“ Fall Ist = 3 Zehner1 = “dreißig“ Fall Ist = 4 Zehner1 = “vierzig“ Fall Ist = 5 Zehner1 = “fünfzig“ Fall Ist = 6 Zehner1 = “sechzig“ Fall Ist = 7 Zehner1 = “siebzig“ Fall Ist = 8 Zehner1 = “achtzig“ Fall Ist = 9 Zehner1 = “neunzig“ Ende Prüfe Ende Funktion
|