HERBERS Excel-Forum - die Beispiele

Thema: Zahlwort deutsch

Home

Gruppe

UDF

Problem

Wie kann ich Zahlen in Zahlwörtern darstellen?

Lösung
Geben Sie die nachfolgende benutzerdefinierte Funktion in ein Standardmodul ein.
StandardModule: basMain

Dim BisNeunzehn As Variant
Dim Zehner As Variant
Dim Tausender As Variant

In Anlehnung an eine Klassenprogrammierung von Hans W. Hofmann
Function ZWort(dZahl As Double, Optional bln As Boolean)
   Dim dRest As Double
   dRest = WorksheetFunction.Round((dZahl - Fix(dZahl)), 2) * 100
   dZahl = Fix(dZahl)
   BisNeunzehn = Array("", "ein", "zwei", "drei", "vier", _
      "fünf", "sechs", "sieben", "acht", "neun", "zehn", _
      "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", _
      "sechzehn", "siebzehn", "achtzehn", "neunzehn")
   Zehner = Array("", "zehn", "zwanzig", "dreißig", _
      "vierzig", "fünfzig", "sechzig", "siebzig", _
      "achtzig", "neunzig")
   Tausender = Array("", "tausend", "millionen", "milliarden")
   If dRest = 0 Then
      ZWort = Text(dZahl)
   Else
      If bln Then
         ZWort = Text(dZahl) & " " & dRest & "/00"
      Else
         ZWort = Text(dZahl)
      End If
   End If
End Function

Private Function Wort(wert As Integer) As String
   Dim h As Integer
   h = wert Mod 100
   If h < 20 Then
      Wort = BisNeunzehn(h)
   Else
      Wort = BisNeunzehn(h Mod 10) & IIf(h Mod 10 > 0, "und", "") & _
         Zehner(Int(h / 10))
   End If
   h = (wert Mod 1000 - h) / 100
   If h > 0 Then Wort = BisNeunzehn(h) & "hundert" & Wort
End Function

Private Function Text(wert As Double)
   Dim l As Integer, i As Integer, p As Integer
   If InStr(1, Str(wert), ",") = 0 And InStr(1, Str(wert), ".") = 0 Then
      For i = 1 To 1 + Int(Len(Str(wert)) / 3)
         p = Val("0" & Mid("000" + Str(wert), _
            Len("000" & Str(wert)) - i * 3 + 1, 3))
         If p > 0 Then Text = Wort(p) & Tausender(i - 1) & Text
      Next
   Else
      Text = "#Ganzzahl!"
   End If
   If Right(Text, 3) = "ein" Then Text = Text & "s"
End Function

Beiträge aus dem Excel-Forum zu den Themen UDF und Zahlwort

Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage) Ergebnis UDF ändert, wenn Tabelle deaktiviert wird
UDF soll nicht auf Daten anderer Dateien zugreifen vor Ausführung einer UDF Zwischenspeicher "retten&
UDF - Argument ohne " " übergeben möglic UDF- Beschreibung
Berechnungsdauer einer UDF messen Hintergrudfarbe ändern??? Finde keine Lösung :-(
Probleme mit IsNumeric, Code per UDF UDF mittels Ereignis aktualisieren?
UDF, Minuszeichen vor Zahl auswerten nach Worksheet_Change werden UDF nicht ausgewertet
Excel anhalten bei UDF UDF
UDF, Rückgabewert Text anstelle Zahl Aufruf einer UDF, Fehler Objekt erforderlich
SQL in UDF Werte einer UDF werden nicht aktualisiert
Aufruf von UDF mit Array UDF: Semikolon vs Komma
UDF, erkennen in welcher Zelle die UDF steht Probleme mit UDF und Worksheet Ereignissen
Zahlwort in Englisch Formeln über UDF vergleichen
UDF Verweis checken UDF
Intellisense bei User defined functions (UDF) Zahlwort
Zahlwort (immernoch) Zahlwort
Zahlwort Deutsch VBA "Find" in UDF
UDF-Funktionen in eigener Kategorie zahlwort
UDF Function Variable Info erstellen UDF, optionaler Parameter als Range, IsEmpty?
UDF verschiedene Bereiche ändern Makro aus UDF starten
Reihenfolge von UDF's UDF/ Berechnung Zuschlagszeiten
Zahlwort AddIn UDF in anderem VBA-Project verwenden
UDF und Array bzw. Matrix UDF die Texte in Zahlen umwandelt
Summewenns UDF über mehrere Tabellenblätter Funktionsargumente für UDF's
UDF Reihenfolge Übergabeparamter führt zu #WERT Neuberechnung einer UDF
VBA - UDF anpassen UDF liefert kein Ergebnis