Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zahlwort

Zahlwort
25.09.2004 21:34:12
Matthias
Hallo nochmal!
Leider konnte mir noch keiner weiterhelfen.
1. Problem:Ich möchte untenstehende Funktion aufrufen, wenn ich meine UF mittels Commanbutton verlasse.
2. Problem: Ich verlasse Textfeld1 in der UF mittels TabTaste. Dadurch soll im Textfeld3(mittels unten stehender Funktion als Zahlwort) die Zahl aus Textfeld2(hier numerisch) erscheinen.
Die Zahl in Textfeld2 resultiert aus einem Eintrag in Textfeld1.
Kann jemand helfen?
Dim BisNeunzehn As Variant
Dim Zehner As Variant
Dim Tausender As Variant
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) And " " And dRest And "/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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlwort
Hajo_Zi
Hallo Matthias,
zu 1 hast Du nicht geschrieben wo was passieren soll.
Zu 2 habe ich mal eine andere Funktion eingesetzt.
https://www.herber.de/bbs/user/11307.xls
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro SP2 und Excel Version 2003 SP1.


AW: Zahlwort
Matthias
Hallo Hajo!
UF verlasse ich per CommandButton. Dann soll in tf3 der Wert als Zahlwort stehen, der in tf2 beim Verlassen von tf1 mittels TabTaste erscheint.
'ne Idee?
Gruß
Matthias
Anzeige
AW: Zahlwort
Hajo_Zi
Hallo Matthias,
ich habe nicht so viele Beiträge im Forum gelesen als ich angefangen habe.
Ich muß Udo und Reinhard zustimmen löse Dein Problem in einem Beitrag und fange nicht einen neuen Beitrag an. Da geht die Übersicht verloren.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro SP2 und Excel Version 2003 SP1.


AW: Zahlwort
Matthias
Hallo Hajo nochmal!
Langsam begreif' ich es auch.
Danke!

Was ist mit diesem Beitrag?
Danke Nepumuk, hat geklappt!!


Bezieht sich auf diese Nachricht:
Hallo Matthias,
zwei Beispiele.
1. Beim verlassen der Textbox1:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TextBox1.Value) Then TextBox2.Value = ZWort(CDbl(TextBox1.Value))
End Sub

2. Beim drücken der Entertaste:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then If IsNumeric(TextBox1.Value) Then TextBox2.Value = ZWort(CDbl(TextBox1.Value))
End Sub

Gruß
Nepumuk



Schau mal da, ob Du da was bracuhabres findest.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige