Excel: Zahlen in Text umwandeln?

4 Antworten

Das klappt leider alles nicht, die zahl ist inhalt einer Formel und steht nicht in irgend einer Zelle.


LittleArrow  03.10.2010, 01:39

Inhalt oder Ergebnis einer Formel?

0

Formel geht nicht! Musst in Feld [C1] die Funktion "=FctZahl_In_Worten(B1)" durch "Funktion einfügen" verwenden!

Dein Beispiel: (von mir gerade ausprobiert, mit Gruß von K. Donaubauer

A = Name, B = Zahl, C = Zahl als Wort geschrieben



  1. Gehe in den VBA-Modus mit Tastenkombination [ALT+F11]
  2. links auf "Modul" klicken
  3. Code einfügen (rechts angezeigt)
  4. Folgenden Code ins Codefenster koppieren und einfügen:

'*********** CODE START *************Public Function FctZahl_In_Worten(Zahl As Double)  'wandelt Zahlen im Bereich 0-999.999.999 in Worte um  'von Karl Donaubauer  Dim z As String, w As String  Dim r As Integer, i As Integer  z = Int(Zahl)  If z = 0 Then FctZahl_In_Worten = "null": Exit Function  For i = 6 To 0 Step -3    If Len(z) > i Then      r = Right(Int(z / (10 ^ i)), 3)      If r > 99 Then w = FctZif(1, Left(r, 1), w) & "hundert": r = Right(r, 2)      If r > 19 Then w = FctZif(3, Right(r, 1), w): w = FctZif(4, Left(r, 1), w)      If i = 0 And Right(z, 3) Like "00*" And r > 0 Then w = w & "und"      If r < 10 Then w = FctZif(1, r, w)      If r > 9 And r < 20 Then w = FctZif(2, Right(r, 1), w)      If i = 6 And Len(z) = 7 And r = 1 Then w = "einemillion"      If i = 6 And Right(Int(z / 10 ^ i), 3) > 1 Then w = w & "millionen"      If i = 3 And Right(Int(z / 10 ^ i), 3) > 0 Then w = w & "tausend"      If i = 0 And r = 1 Then w = w & "s"    End If  Next  FctZahl_In_Worten = wEnd Function'----------------------Function FctZif(Par As Byte, r As Integer, w As String)  w = w & Choose(r, "ein", "zwei", "drei", "vier", "fünf", "sech", "sieb", "acht", "neun")  Select Case Par      Case 1, 3          If r = 6 Then w = w & "s"          If r = 7 Then w = w & "en"          If Par = 3 And r > 0 Then w = w & "und"      Case 2          w = w & "zehn"          If r = 1 Then w = Left(w, Len(w) - 7) & "elf"          If r = 2 Then w = Left(w, Len(w) - 8) & "zwölf"      Case 4          If r = 2 Then w = Left(w, Len(w) - 4) & "zwan"          w = w & "zig"          If r = 3 Then w = Left(w, Len(w) - 3) & "ßig"  End Select  FctZif = wEnd Function'*********** CODE ENDE *************

  • Wenn Du das geschafft hast, gehe in die Objektansicht von Excel (Tabellenansicht) und
  • füge folgende Funktion in das Feld [C1] ein.
    FctZahl_In_Worten 
  • kopiere nun die Funktion wie eine Formel beliebig weit nach unten
    in die Spalte C (soweit, wie Tabellendaten vorhanden)
  • Fertig!

Ich hoffe, es hat geklappt und ich hab Dir geholfen!
p.s.: die Zahlworte sind kleingeschrieben.


Nachtrag: hier der gegoogelte Link:

http://www.donkarl.com/FAQ/FAQ2Allgemein.htm#2.11

Die Homepage von Karl Donaubauer:   w w w . d o n k a r l . c o m 

Versuche die Funktion =FEST(Zahl oder Formel; Dezimalstellen).

Beispiel in einer Zelle:

=FEST(10-9;0)&" Packen" ergibt "1 Packen".

WAS klappt nicht?
Wie lautet die Formel?
Was willst Du erreichen?
Beispiel?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)