Excel 95: 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