Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Umwandeln von beträgen in ausgeschriebenen text

Forumthread: Umwandeln von beträgen in ausgeschriebenen text

Umwandeln von beträgen in ausgeschriebenen text
20.08.2003 17:00:56
lorenz
Hallo ihr wissenden,
ist es möglich eine zelle so zu definieren, dass sie den wert einer anderen zelle als ausgeschriebenes wort darstellt?
Bsp:
in der zelle A1 steht die zahl „9“; in der zelle A2 soll nun automatisch „neun“ stehen.
Um es noch praxisnaher zu beschreiben:
ich möchte automatisch quittungen erstellen in denen der jeweilige betrag auch ausgeschrieben steht; (am besten auch mit cent angabe, es reicht aber auch die ganze zahl).
Vielen dank für eure mühen,
grüße
lorenz
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umwandeln von beträgen in ausgeschriebenen text
20.08.2003 21:53:57
Franz Pölt
Hallo Lorenz,
probiere mal das aus:

Function inWorten(var As Variant) As String
Dim j As Byte
Dim strZahl As String
Dim sX1   As String     '1 Zeichen
Dim sX3   As String     '3 Zeichen
Dim sVal  As String     'millionen,tausend,hundert
If Val(var) > 999999999 Then inWorten = "": Exit Function
var = Int(CDbl(var) / 1)
strZahl = String(9 - Len(CStr(var)), "0") & CStr(var)
For j = 0 To 2
sX3 = Mid(strZahl, j * 3 + 1, 3)
Select Case j
Case 0
sVal = "million"
If Val(Right(sX3, 1)) > 1 Then sVal = "millionen"
Case 1
sVal = "tausend"
Case 2
sVal = ""
Case 3
sVal = ""
End Select
If Val(sX3) > 0 Then
inWorten = inWorten & Z2W(Left(sX3, 1), "hundert")
inWorten = inWorten & Z2W(Right(sX3, 1), "und")
inWorten = inWorten & Z2W0(Mid(sX3, 2, 1))
If inWorten Like "*undzehn" Then
inWorten = WorksheetFunction.Substitute(inWorten, "einundzehn", "elf")
inWorten = WorksheetFunction.Substitute(inWorten, "zweiundzehn", "zwölf")
inWorten = WorksheetFunction.Substitute(inWorten, "undzehn", "zehn")
inWorten = WorksheetFunction.Substitute(inWorten, "szehn", "zehn")
inWorten = WorksheetFunction.Substitute(inWorten, "enzehn", "zehn")
End If
If inWorten Like "*undmill*" Then
inWorten = WorksheetFunction.Substitute(inWorten, "einundmill", "einemill")
inWorten = WorksheetFunction.Substitute(inWorten, "undmill", "mill")
End If
inWorten = WorksheetFunction.Substitute(inWorten, "undnull", "")
inWorten = inWorten & sVal
End If
Next
If Right(inWorten, 3) = "und" Then inWorten = Left(inWorten, Len(inWorten) - 3)
If Right(inWorten, 3) = "ein" Then inWorten = inWorten & "s"
End Function


Function Z2W(ziffer As Byte, Optional sOpt As String) As String
Select Case ziffer
Case 0: Z2W = ""
Case 1: Z2W = "ein"
Case 2: Z2W = "zwei"
Case 3: Z2W = "drei"
Case 4: Z2W = "vier"
Case 5: Z2W = "fünf"
Case 6: Z2W = "sechs"
Case 7: Z2W = "sieben"
Case 8: Z2W = "acht"
Case 9: Z2W = "neun"
End Select
If sOpt <> "" And Z2W <> "" Then Z2W = Z2W & sOpt
End Function


Function Z2W0(ziffer As Byte) As String
Select Case ziffer
Case 0: Z2W0 = ""
Case 1: Z2W0 = "zehn"
Case 2: Z2W0 = "zwanzig"
Case 3: Z2W0 = "dreissig"
Case 4: Z2W0 = "vierzig"
Case 5: Z2W0 = "fünfzig"
Case 6: Z2W0 = "sechzig"
Case 7: Z2W0 = "siebzig"
Case 8: Z2W0 = "achtzig"
Case 9: Z2W0 = "neunzig"
End Select
End Function

Aufruf:
z.B. inWorten(111) - Ergebnis "einhundertelf"
inWorten(A1) - Umwandlung der Zahl in A1 (Wert vor dem Komma)
Servus aus dem Salzkammergut
Franz

Anzeige
AW: vielen dank an euch
23.08.2003 12:38:45
lorenz
es hat funxioniert!!

was hat warum funktioniert ??
23.08.2003 21:57:01
th.heinrich
hallo Lorenz,
welche der "loesungen" hat funktioniert ??
troztdem ich 100% sicher bin keine antwort von Dir zu erhalten, ist Deine antwort
"es hat funxioniert!!"
keine bereicherung fuer das Forum.
thomas
thomas

AW: was hat warum funktioniert ??
24.08.2003 23:28:39
lorenz
lieber thomas,
ich wollte mich für eure antworten bedanken. eventuell ich dir diese höflichkeit nicht wichtig, und sicher keine inhaltliche bereicherung für das forum; vielleicht freuen sich die anderen beiden ratgeber darüber.
in diesem sinne
lorenz

Anzeige

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Beträge in Excel als ausgeschriebene Texte darstellen


Schritt-für-Schritt-Anleitung

Um in Excel eine Zahl in ausgeschriebenen Text umzuwandeln, kannst Du eine benutzerdefinierte Funktion in VBA erstellen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle im Menü Einfügen die Option Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Function inWorten(var As Variant) As String
       Dim j As Byte
       Dim strZahl As String
       Dim sX1   As String     '1 Zeichen
       Dim sX3   As String     '3 Zeichen
       Dim sVal  As String     'millionen,tausend,hundert
       If Val(var) > 999999999 Then inWorten = "": Exit Function
       var = Int(CDbl(var) / 1)
       strZahl = String(9 - Len(CStr(var)), "0") & CStr(var)
       For j = 0 To 2
           sX3 = Mid(strZahl, j * 3 + 1, 3)
           Select Case j
               Case 0
                   sVal = "million"
                   If Val(Right(sX3, 1)) > 1 Then sVal = "millionen"
               Case 1
                   sVal = "tausend"
               Case 2
                   sVal = ""
           End Select
           If Val(sX3) > 0 Then
               inWorten = inWorten & Z2W(Left(sX3, 1), "hundert")
               inWorten = inWorten & Z2W(Right(sX3, 1), "und")
               inWorten = inWorten & Z2W0(Mid(sX3, 2, 1))
               If inWorten Like "*undzehn" Then
                   inWorten = WorksheetFunction.Substitute(inWorten, "einundzehn", "elf")
                   inWorten = WorksheetFunction.Substitute(inWorten, "zweiundzehn", "zwölf")
               End If
               inWorten = WorksheetFunction.Substitute(inWorten, "undnull", "")
               inWorten = inWorten & sVal
           End If
       Next
       If Right(inWorten, 3) = "und" Then inWorten = Left(inWorten, Len(inWorten) - 3)
    End Function
    
    Function Z2W(ziffer As Byte, Optional sOpt As String) As String
       Select Case ziffer
           Case 0: Z2W = ""
           Case 1: Z2W = "ein"
           Case 2: Z2W = "zwei"
           Case 3: Z2W = "drei"
           Case 4: Z2W = "vier"
           Case 5: Z2W = "fünf"
           Case 6: Z2W = "sechs"
           Case 7: Z2W = "sieben"
           Case 8: Z2W = "acht"
           Case 9: Z2W = "neun"
       End Select
       If sOpt <> "" And Z2W <> "" Then Z2W = Z2W & sOpt
    End Function
    
    Function Z2W0(ziffer As Byte) As String
       Select Case ziffer
           Case 0: Z2W0 = ""
           Case 1: Z2W0 = "zehn"
           Case 2: Z2W0 = "zwanzig"
           Case 3: Z2W0 = "dreissig"
           Case 4: Z2W0 = "vierzig"
           Case 5: Z2W0 = "fünfzig"
           Case 6: Z2W0 = "sechzig"
           Case 7: Z2W0 = "siebzig"
           Case 8: Z2W0 = "achtzig"
           Case 9: Z2W0 = "neunzig"
       End Select
    End Function
  4. Schließe den VBA-Editor und kehre zu Deiner Excel-Tabelle zurück.

  5. Verwende die Funktion in einer Zelle, z.B. =inWorten(A1), um die Zahl in Zelle A1 in Worte umzuwandeln.


Häufige Fehler und Lösungen

  • Fehler: "Typ nicht übereinstimmend"

    • Lösung: Stelle sicher, dass die Eingabe in der Zelle eine Zahl ist.
  • Fehler: Die Funktion gibt nichts zurück.

    • Lösung: Überprüfe, ob die Zahl in der Zelle innerhalb des unterstützten Bereichs liegt (unter 999.999.999).

Alternative Methoden

Wenn Du VBA vermeiden möchtest, kannst Du Excel-Funktionen kombinieren, um Texte zu erzeugen, aber diese Methode ist nicht so flexibel und erfordert mehr manuelle Arbeit. Eine Möglichkeit wäre, manuelle Formeln zu verwenden, um Zahlen in Worte zu konvertieren, jedoch ist sie oft nicht praktikabel für große Datenmengen.


Praktische Beispiele

  • Beispiel 1: Um eine Zahl wie 123 in Worte umzuwandeln, gib in eine Zelle ein:

    =inWorten(123)   ' Ergebnis: "einhundertdreiundzwanzig"
  • Beispiel 2: Um den Betrag für eine Quittung zu erstellen, kannst Du den Betrag in A1 haben und in B1 die Formel:

    =inWorten(A1)   ' Ergebnis: "Betrag in Worten"

Tipps für Profis

  • Du kannst die Funktion inWorten anpassen, um auch Cent-Beträge zu berücksichtigen, indem Du die Funktion erweiterst, um nach dem Dezimalpunkt zu schauen.
  • Stelle sicher, dass Du die Funktion in einem benutzerfreundlichen Format aufrufst, um sie in Berichten oder Quittungen einfach zu nutzen.

FAQ: Häufige Fragen

1. Wie kann ich die Funktion in anderen Excel-Versionen verwenden? Die Funktion funktioniert in Excel ab der Version 2007 und höher.

2. Gibt es eine Möglichkeit, die Zahl in Worten auch ohne VBA darzustellen? Leider gibt es keine Standardfunktion in Excel, um Zahlen in Worte zu konvertieren, ohne VBA zu verwenden. VBA ist die beste Lösung für diesen Zweck.

3. Kann ich die Funktion auch für negative Zahlen nutzen? Ja, Du kannst die Funktion so anpassen, dass sie auch negative Zahlen korrekt in Worte umwandelt, indem Du eine Bedingung hinzufügst, die das Wort "minus" vor die Ausgabe setzt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige