Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1124to1128
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
TextBox in UF in richtiges Format
Heinz
Schönen Sonntag im Forum
Ich habe in Uf
[E96].Value = TextBox1.Value
Nun möchte ich das in Textbox1 die Eingabe in 0,00###"h" umgewandelt wird.
Untere Zeile geht leider nicht.
[E96].TextBox1.Value = Format(TextBox1.Value, "0,00###"h"")
Ich habe TextBoxen 1-20 die alle das selbe Format haben sollten.
Könnte mir bitte dazu jemand behilflich sein ?
Gruß
Heinz
AW: TextBox in UF in richtiges Format
03.01.2010 12:35:08
ransi
HAllo
Sind die Textboxen auf einer Userform oder in einem Tabellenblatt ?
ransi
AW: TextBox in UF in richtiges Format
03.01.2010 13:01:52
Heinz
Hallo Ransi
Die Textboxen sind aus einer UF
Gruß
Heinz
AW: TextBox in UF in richtiges Format
03.01.2010 14:25:38
fcs
Hallo Heinz,
die Anweisung muss dann so aussehen:
  [E96].Value = Format(IIf(IsNumeric(Me.TextBox1.Value), CDbl(TextBox1.Value), 0), _
"0.00###""h""")

sinnvoller ist es aber, die Ergebnis-Zellen mit dem entsprechenden benutzerdefinierten Format zu formatieren und nur die Zahlenwerte gerundet in die Zelle zurückzuschreiben.
  [E96].Value = Application.WorksheetFunction.Round(IIf(IsNumeric(Me.TextBox1.Value), _
CDbl(TextBox1.Value), 0), 5)

Die Prüfung auf nummerische Werte stellt sicher, dass die CDbl-Funktion ohne Fehler durchläuft. Bei leerer Textbox oder Texteingaben wird dann 0 als Wert zurückgegeben.
Gruß
Franz
Anzeige
AW: TextBox in UF in richtiges Format
03.01.2010 15:12:54
Heinz
Hallo Franz
Recht herzlichen Dank, für Deine Ausführliche Hilfestellung.
Gruß
Heinz
AW: TextBox in UF in richtiges Format
04.01.2010 00:23:40
Heinz
Hallo Franz
Habe es nun eingerichtet.
Nur wenn ich jetzt eine Textbox "Ab Montag" frei lasse bekomme ich eine Fehlermeldung.
Ich möchte nicht zwingend in die Textboxen "Ab Montag etwas eingeben.
Gruß
Heinz

Private Sub cmdUebertragen_Click()
If Me.txtA = "" Then
MsgBox "Bitte einen Namen eingeben!"
Exit Sub
ElseIf Me.txtB = "" Then
MsgBox "Bitte Personalnummer eingeben!"
Exit Sub
ElseIf Me.TextBox30 = "" Then
MsgBox "Bitte Eintrittsdatum eingeben."
Exit Sub
ElseIf Me.TextBox17 = "" Then
MsgBox "Bitte Beginn der Stundenliste eingeben."
Exit Sub
End If
If Not (TextBox30 Like "?.?.?" And IsNumeric(TextBox30)) Then
TextBox30.SetFocus
MsgBox "Eingabe in Eintrittsdatum ist Falsch geben sie TT.MM.JJJJ ein"
Exit Sub
End If
If Not (TextBox17 Like "?.?.?" And IsNumeric(TextBox17)) Then
TextBox17.SetFocus
MsgBox "Eingabe in Beginn der Stundenliste ist Falsch geben sie TT.MM.JJJJ ein"
Exit Sub
End If
[B3].Value = txtA.Value 'Name
[A3].Value = txtB.Value 'PersNummer
[F1].Value = TextBox17.Value 'Beginn Stundenliste
'########## Ab Montag ###############
[C96].Value = Application.WorksheetFunction.Round(IIf(IsNumeric(Me.txtD.Value), _
CDbl(txtD.Value), 0), 5) 'Montag Arb.Beginn
[E96].Value = Application.WorksheetFunction.Round(IIf(IsNumeric(Me.TextBox1.Value), _
CDbl(TextBox1.Value), 0), 5) 'Montag Arb.Ende
[B96].Value = Application.WorksheetFunction.Round(IIf(IsNumeric(Me.TextBox2.Value), _
CDbl(TextBox2.Value), 0), 5) 'Montag Pausezeit
[J96].Value = Application.WorksheetFunction.Round(IIf(IsNumeric(Me.TextBox4.Value), _
CDbl(TextBox4.Value), 0), 5) 'Montag Pause bezahlt
[B101].Value = TextBox30.Value 'Eintrittsdatum
[B102].Value = TextBox27.Value 'Urlaubsanspruch im Jahr
[B103].Value = TextBox28.Value 'Bildungsurlaub im Jahr
[B104].Value = TextBox29.Value 'Pflegefreistellung im Jahr
Call WochenendeWeg(True)
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ("Stundenliste" & " " & ActiveSheet.Range("B3")  _
_
_
_
& " " & ActiveSheet.Range("F1")) & ".xls"
ActiveSheet.Shapes(Application.Caller).Delete 'Löscht den Button Neues Personalblatt  _
erstellen
Unload Me
End Sub

Anzeige
AW: TextBox in UF in richtiges Format
04.01.2010 02:43:28
fcs
Hallo Heinz,
da hatte ich scheinbar nicht alle Eingabevarianten durchgetestet. Mein Vorschlag reagiert noch allergisch aus leere Textboxen, da der Iff-Ausdruck komplett ausgewertet wird.
Wenn du nicht zwingend Daten eingeben willst, dann muss du die Werte in den Textboxen auf ="" prüfen und dann entweder die entsprechenden Aktionen bei Werteingabe überspringen bzw. den Inhalt in den zuordneten Zellen löschen.
Da du mehrere Textboxen in gleicher Weise Zellen ausfüllen lassen willst ist es sinnvoll hierfür eine Function zu erstellen, der "nur" jeweils Parameter übergeben werden.
Gruß
Franz
Private Sub CommandButton1_Click()
'Beispiel für Aufruf der Function für Zelle E96 und Textbox1
'     - bei leerer Textbox erfolgt keine Aktion
If EingabeZahl(Zelle:=[E96], sTextboxname:="Textbox1") = False Then Exit Sub
'oder - bei leerer Textbox wird Null eingetragen
If EingabeZahl(Zelle:=[E96], sTextboxname:="Textbox1", bolNull:=True) = False Then Exit Sub
'oder - bei leerer Textbox wird Zellinhalt gelöscht, spezieller Meldetext bei Nicht-Zahl
If EingabeZahl(Zelle:=[E96], sTextboxname:="Textbox1", bolClear:=True, _
Msgtext:="Eingabe Beginn Montag muss Zahl sein!") = False Then Exit Sub
'oder - Eingabe in Textbox zwingend erforderlich
If EingabeZahl(Zelle:=[E96], sTextboxname:="Textbox1", bolMusseingabe:=True, _
Msgtext:="Eingabe Beginn Montag muss Zahl sein!") = False Then Exit Sub
End Sub
Private Function EingabeZahl(Zelle As Range, sTextboxname As String, _
Optional bolNull As Boolean = False, _
Optional bolClear As Boolean = False, _
Optional bolMusseingabe As Boolean = False, _
Optional Msgtext As String) As Boolean
Dim oControl As Control
Set oControl = Me.Controls(sTextboxname)
If oControl.Object.Value = "" Then
If bolMusseingabe = True Then
If Msgtext  "" Then
MsgBox Msgtext, vbInformation + vbOKOnly, "Muss-Eingabe"
Else
MsgBox "Wert-Eingabe in """ & sTextboxname & """ ist erforderlich", _
vbInformation + vbOKOnly, "Muss-Eingabe"
End If
EingabeZahl = False
Else
If bolClear = True Then Zelle.ClearContents
If bolNull = True Then Zelle.Value = 0
End If
ElseIf IsNumeric(oControl.Object.Value) Then
Zelle.Value = Application.WorksheetFunction.Round(CDbl(oControl.Object.Value), 5)
Else
If Msgtext  "" Then
MsgBox Msgtext, vbInformation + vbOKOnly, "Zahlenwerteingabe"
Else
MsgBox "Eingabe in """ & sTextboxname & """ ist keine Zahl", _
vbInformation + vbOKOnly, "Zahlenwerteingabe"
End If
EingabeZahl = False
End If
End Function

Anzeige
AW: TextBox in UF in richtiges Format
04.01.2010 03:25:22
Heinz
Hallo Franz
Erstmals Danke.
Wärst du bitte sooo nett und könntest mir ein Beispiel einpflanzen,da ich nicht ganz zurecht komme.
Es wird mit Industriezeit gerechnet. Zb. Montag Beginn 8,50 Ende 15,50 Pause 0,50
Da nicht jeder am Montag arbeitet sollten eben gewisse Textboxen frei sein.
Eventuell mit Meldung wenn falsches Format eingegeben wurde.
Ich bedanke mich für deine geleistete Hilfe
Heinz
https://www.herber.de/bbs/user/66964.xls
AW: TextBox in UF in richtiges Format
04.01.2010 07:31:53
fcs
Hallo Heinz,
ich hab die Funktion jetzt in deine UF eingebaut. Zusätzlich eine Datums-Vervollständigung für "Eintrittsdatum" und "Beginn Stundenplan". Das Datum kann jetzt ähnlich wie in Zellen verkürzt eingegeben werden und wird beim Verlassen der Textbox ins Langformat umgesetzt.
Da übersichtlicher zu Handhaben hab ich die Textboxen für die 5 Wochentage umbenannt.
txtMo... bis txtFr...
Gruß
Franz
https://www.herber.de/bbs/user/66967.xls
Anzeige
AW: TextBox in UF in richtiges Format
04.01.2010 13:06:04
Heinz
Hallo Franz
Du bist einfach S P I T Z E ! ! !
Recht - Recht herzlichen DANK
Gruß
Heinz

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige