Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

TextBox in UF in richtiges Format | Herbers Excel-Forum


Betrifft: TextBox in UF in richtiges Format von: Heinz H
Geschrieben am: 03.01.2010 12:27:56

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

  

Betrifft: AW: TextBox in UF in richtiges Format von: ransi
Geschrieben am: 03.01.2010 12:35:08

HAllo

Sind die Textboxen auf einer Userform oder in einem Tabellenblatt ?

ransi


  

Betrifft: AW: TextBox in UF in richtiges Format von: Heinz H
Geschrieben am: 03.01.2010 13:01:52

Hallo Ransi

Die Textboxen sind aus einer UF

Gruß
Heinz


  

Betrifft: AW: TextBox in UF in richtiges Format von: fcs
Geschrieben am: 03.01.2010 14:25:38

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


  

Betrifft: AW: TextBox in UF in richtiges Format von: Heinz H
Geschrieben am: 03.01.2010 15:12:54

Hallo Franz

Recht herzlichen Dank, für Deine Ausführliche Hilfestellung.

Gruß
Heinz


  

Betrifft: AW: TextBox in UF in richtiges Format von: Heinz H
Geschrieben am: 04.01.2010 00:23:40

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



  

Betrifft: AW: TextBox in UF in richtiges Format von: fcs
Geschrieben am: 04.01.2010 02:43:28

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



  

Betrifft: AW: TextBox in UF in richtiges Format von: Heinz H
Geschrieben am: 04.01.2010 03:25:22

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


  

Betrifft: AW: TextBox in UF in richtiges Format von: fcs
Geschrieben am: 04.01.2010 07:31:53

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


  

Betrifft: AW: TextBox in UF in richtiges Format von: Heinz H
Geschrieben am: 04.01.2010 13:06:04

Hallo Franz

Du bist einfach S P I T Z E ! ! !

Recht - Recht herzlichen DANK


Gruß
Heinz


Beiträge aus den Excel-Beispielen zum Thema "TextBox in UF in richtiges Format"