Excel .. Umwandlung Zahl in Text

Hallo,
folgendes Programm soll eine Zahl (Geldbetrag) in Text umwandeln. hat auch unter excel 2003 funktioniert. habe jetzt auf excel 2010 umgestellt. Fehlermeldung bei r= right
Kann mir jemand helfen ?

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 9 And r 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 = w
End Function

Hallo echojürgen,

Kann es sein, daß Du beim Umstellen auch auf „Deutsch“ umgestellt hast ?
Dann gibt es nämlich kein  RIGHT()  mehr, sondern nur noch  RECHTS().

Mehr fällt mir leider auch nicht ein, da ich in VBA nicht so bewandert bin.
Mit Gruß,
                   Frank-Thomas

Da fehlt einges

Hallo,

Hallo Jürgen,

folgendes Programm soll eine Zahl (Geldbetrag) in Text
umwandeln.

Das ist kein Programm, das ist der Teil einer Funktion.

hat auch unter excel 2003 funktioniert.

So, wie es hier steht, wohl eher nicht.

habe jetzt
auf excel 2010 umgestellt. Fehlermeldung bei r= right
Kann mir jemand helfen ?

Hier fehlt die erste Zeile der Funktion FctZahl_In_Worten

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) &

Die Funktion FctZif fehlt hier ganz.

„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 9 And r 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 = w
End Function

Zeig mal den vollständigen Code, bitte. Dann wird es vielleicht lösbar.

Gruß, Andreas

Funktionen funktioieren

folgendes Programm soll eine Zahl (Geldbetrag) in Text
umwandeln. hat auch unter excel 2003 funktioniert. habe jetzt
auf excel 2010 umgestellt. Fehlermeldung bei r= right
Kann mir jemand helfen ?

Hallo Juergen,

wird „Right“ nicht erkannt bei dir? Wielautet die Fehlermeldung?
Teste mal sowas:

Sub tt()
msgbox Right(„abcd“,2)
End Sub

Kommt der gleiche Fehler so fehlt dir ein Add-In im Add-In-Manager.
Nachstehend wohl deine Codes, funktionieren bei mir (XL 2000) problemfrei:

Gruß
Reinhard

Option Explicit

Sub aa()
MsgBox FctZahl\_In\_Worten(4711)
End Sub

Function FctZahl\_In\_Worten(Zahl As Double)
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 9 And r 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 = w
End 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 = w
End Function