title image


Smiley Re: Zahl in Worten darstellen
Ich hatte vor ein paar Wochen das gleiche Problem, und habe es mit folgenden VBA-Funktionen gelöst. Der Aufruf erfolgt mit ziffer_in_worte(umzuwandelnde Ziffer). Vielleicht gibt es aber auch einen eleganteren Weg.Function ziffer_in_worte(ziffer)If ziffer ziffer_in_worte = "minus "Else ziffer_in_worte = ""End IfIf ziffer / 10 ziffer_in_worte = ziffer_in_worte + einer_in_worte(ziffer) Exit FunctionEnd IfIf ziffer / 100 ziffer_in_worte = ziffer_in_worte + zehner_in_worte(ziffer) Exit FunctionEnd IfIf ziffer / 1000 ziffer_in_worte = ziffer_in_worte + hunderter_in_worte(ziffer) Exit FunctionEnd IfIf ziffer / 1000000 ziffer_in_worte = ziffer_in_worte + tausender_in_worte(ziffer) Exit FunctionEnd IfIf ziffer / 1000000000 ziffer_in_worte = ziffer_in_worte + million_in_worte(ziffer) Exit FunctionEnd Ifziffer_in_worte = "Ziffer zu groß"End FunctionFunction million_in_worte(ziffer)Dim cMillion, cTausend, cHundert As StringIf ziffer / 10000000 cMillion = einer_in_worte(CInt(Left(CStr(ziffer), 1))) If CLng(Right(CStr(ziffer), 6)) / 1000 cTausend = hunderter_in_worte(CInt(Right(CStr(ziffer), 6))) Else cTausend = tausender_in_worte(CLng(Right(CStr(ziffer), 6))) End If million_in_worte = cMillion + "millionen" + cTausend Exit FunctionEnd IfIf ziffer / 100000000 cMillion = zehner_in_worte(CInt(Left(CStr(ziffer), 2))) If CLng(Right(CStr(ziffer), 6)) / 1000 cTausend = hunderter_in_worte(CInt(Right(CStr(ziffer), 6))) Else cTausend = tausender_in_worte(CLng(Right(CStr(ziffer), 6))) End If million_in_worte = cMillion + "millionen" + cTausend Exit FunctionEnd IfIf ziffer / 1000000000 cMillion = hunderter_in_worte(CInt(Left(CStr(ziffer), 3))) If CLng(Right(CStr(ziffer), 6)) / 1000 cTausend = hunderter_in_worte(CInt(Right(CStr(ziffer), 6))) Else cTausend = tausender_in_worte(CLng(Right(CStr(ziffer), 6))) End If million_in_worte = cMillion + "millionen" + cTausend Exit FunctionEnd IfEnd FunctionFunction tausender_in_worte(ziffer)Dim cTausend, cHundert As StringIf ziffer / 10000 cTausend = einer_in_worte(CInt(Left(CStr(ziffer), 1))) cHundert = hunderter_in_worte(CInt(Right(CStr(ziffer), 3))) tausender_in_worte = cTausend + "tausend" + cHundert Exit FunctionEnd IfIf ziffer / 100000 cTausend = zehner_in_worte(CInt(Left(CStr(ziffer), 2))) cHundert = hunderter_in_worte(CInt(Right(CStr(ziffer), 3))) tausender_in_worte = cTausend + "tausend" + cHundert Exit FunctionEnd IfIf ziffer / 1000000 cTausend = hunderter_in_worte(CInt(Left(CStr(ziffer), 3))) cHundert = hunderter_in_worte(CInt(Right(CStr(ziffer), 3))) tausender_in_worte = cTausend + "tausend" + cHundert Exit FunctionEnd IfEnd FunctionFunction hunderter_in_worte(ziffer)Dim cHundert, cZehner As StringIf ziffer / 100 hunderter_in_worte = zehner_in_worte(ziffer) Exit FunctionEnd If'If ziffer / 1000 > 1 Then' hunderter_in_worte = "Ziffer größer 1000"' Exit Function'End IfcHundert = einer_in_worte(CInt(Left(CStr(ziffer), 1)))cZehner = zehner_in_worte(CInt(Right(CStr(ziffer), 2)))hunderter_in_worte = cHundert + "hundert" + cZehnerEnd FunctionFunction zehner_in_worte(ziffer)Dim cZehner, cEiner As StringIf ziffer / 10 zehner_in_worte = einer_in_worte(ziffer) Exit FunctionEnd If'If ziffer / 100 > 1 Then' zehner_in_worte = "Ziffer größer 100"' Exit Function'End IfcEiner = einer_in_worte(CInt(Right(CStr(ziffer), 1)))Select Case Left(CStr(ziffer), 1) Case "1" cZehner = "zehn" Case "2" cZehner = "zwanzig" Case "3" cZehner = "dreissig" Case "4" cZehner = "vierzig" Case "5" cZehner = "fünfzig" Case "6" cZehner = "sechzig" Case "7" cZehner = "siebzig" Case "8" cZehner = "achtzig" Case "9" cZehner = "neunzig"End SelectIf ziffer = 10 Then cZehner = "zehn" cEiner = ""End IfIf ziffer = 11 Then cZehner = "elf" cEiner = ""End IfIf ziffer = 12 Then cZehner = "zwölf" cEiner = ""End IfIf cEiner "" Then If cZehner = "zehn" Then zehner_in_worte = cEiner + cZehner Else zehner_in_worte = cEiner + "und" + cZehner End IfElse zehner_in_worte = cZehnerEnd IfEnd FunctionFunction einer_in_worte(ziffer)Dim cEiner As StringIf ziffer / 10 > 1 Then einer_in_worte = "Ziffer größer 10" Exit FunctionEnd IfSelect Case ziffer Case 1 einer_in_worte = "ein" Case 2 einer_in_worte = "zwei" Case 3 einer_in_worte = "drei" Case 4 einer_in_worte = "vier" Case 5 einer_in_worte = "fünf" Case 6 einer_in_worte = "sechs" Case 7 einer_in_worte = "sieben" Case 8 einer_in_worte = "acht" Case 9 einer_in_worte = "neun" Case 0 einer_in_worte = ""End SelectEnd Function

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: