Anzeige
Archiv - Navigation
1600to1604
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
Inhaltsverzeichnis

Excel Userform falsches Format Eingabe in Textbox

Excel Userform falsches Format Eingabe in Textbox
09.01.2018 21:08:08
Thomas
Hallo zusammen,
erst einmal super großes Lob an dieses Forum. Konnte schon einige Lösungen auch in mein Projekt einbauen.
Nun zu meinem Problem:
Ich habe mir eine Formular zur Zeit-Erfassung gebastelt.
Bitte keine Buh-Rufe, bin Arbeitnehmer und es dient nur uns Mitarbeitern.
Die Datenübergabe in das eigentliche Excel-Sheet funktioniert einwandfrei.
Jetzt wollte ich die Eingabe in die TextBox auf HH:MM beschränken und entsprechend eine MSG-BOX bei falschem Format erzeugen.
So weit so gut, aber irgendwie habe ich mich im VBA-Code komplett verrannt.
Hier mein Code:
https://www.herber.de/bbs/user/118828.doc
Kann mir jemand auf die Sprünge helfen?
Vielen Dank

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Userform falsches Format Eingabe in Textbox
09.01.2018 21:26:37
Sepp
Hallo Thomas,
warum eine Word-Datei?
Ohne deinen Code angesehen zu haben, hier ein Beispielcode, der die Eingabe einer Textbox auf die Uhrzeit beschränkt.
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
UhrZeit TextBox1, KeyAscii
End Sub

Private Sub UhrZeit(ByRef theBox As MSForms.TextBox, ByVal KeyAscii As MSForms.ReturnInteger)
'Eingabebeschränkung Textbox_Uhrzeit mit autom. Doppelpunkt
'Format hh:mm
'by Josef Ehrensberger
'a little enhanced by Luschi
Dim ok As Boolean
Select Case Len(theBox)
  Case 0
    Select Case KeyAscii
      Case 48 To 50
      Case 51 To 57
        'erste Ziffer 3 bis 9 --> 03: - 09:
        theBox.Value = theBox.Value & "0" & Chr(KeyAscii) & ":"
        KeyAscii = 0
      Case Else
        KeyAscii = 0
    End Select
  Case 1
    ok = True
    If Left(theBox, 1) = 2 Then
      Select Case KeyAscii
        Case 48 To 51
        Case Else
          ok = False
          KeyAscii = 0
      End Select
    Else
      Select Case KeyAscii
        Case 48 To 57
        Case Else
          ok = False
          KeyAscii = 0
      End Select
    End If
    If ok Then
      '2. Ziffer korrekt, dann ':' ranhängen
      theBox.Value = theBox.Value & Chr(KeyAscii) & ":"
      KeyAscii = 0
    End If
  Case 2
    Select Case KeyAscii
      Case 48 To 53, 58
      Case Else
        KeyAscii = 0
    End Select
  Case 3
    If Right(theBox, 1) = ":" Then
      Select Case KeyAscii
        Case 48 To 53
        Case Else
          KeyAscii = 0
      End Select
    End If
  Case 4
    Select Case KeyAscii
      Case 48 To 57
      Case Else
        KeyAscii = 0
    End Select
  Case Else
    KeyAscii = 0
End Select
End Sub

Gruß Sepp

Anzeige
AW: Excel Userform falsches Format Eingabe in Textbox
09.01.2018 21:28:22
Ralf
Und wer soll das ohne Kenntnis Deiner Variablen, Objekte und Zusammenhänge kontrollieren?
Die Variable Zeit, z. Bsp. wurde in Deiner Sub nicht deklariert oder initialisiert. Ich rätsel hier nicht herum, ob es vielleicht ein globale Variable sein könnte oder nicht...
Me.Controls("lblZeile" & VBA.Format(Zeit, "hh")).Caption
Stell die Mappe ein, dann kann Dir auch geholfen werden.
AW: Excel Userform falsches Format Eingabe in Textbox
10.01.2018 22:02:07
Thomas
Hallo Sepp,
zu erst entschuldige ich mich zwecks des Dateianhangs.
Bin halt neu in diesem Forum.
Nichts desto trotz hast Du geantwortet, was ich wirklich sehr schätze.
Ich schaue mir am Wochenende Deinen Code genauer an um diesen entsprechend in mein Formular einzubauen.
Super vielen Dank.
UserFormEingabeMAImMonat - 1
Private Sub cmbSpeichern_Click()
Dim xlblatt As Worksheet
Dim xlzelle As Range
Dim i As Long
Dim j As Long
Dim Zeit As Date
Set xlblatt = ActiveWorkbook.Worksheets("Kalender")
Set xlzelle = xlblatt.Range("a1")
' *** Eingabe Pr�fung ***
For i = 1 To 31 'xlzelle.CurrentRegion.Rows.Count - 1 ' ##### je nach Zeilen im Formular  _
65533;ndern
If Me.Controls("lblZeile" & VBA.Format(Zeit, "hh")).Visible = True Then
If Me.Controls("Gekommentxt" & VBA.Format(Zeit, "hh")).Value  "" Then
If IsDate(Me.Controls("Gekommentxt" & VBA.Format(Zeit, "hh")).Value) = False Th
en
MsgBox "Bitte keine Texte!", vbInformation
Me.Controls("Gekommentxt" & VBA.Format(Zeit, "hh")).SetFocus
Me.Controls("Gekommentxt" & VBA.Format(Zeit, "hh")).SelStart = 0
Me.Controls("Gekommentxt" & VBA.Format(Zeit, "hh")).SelLength = Len(Me.Cont
rols("Gekommentxt" & VBA.Format(Zeit, "hh")).Value)
Exit Sub
End If
End If
End If
Next
' *** �bergabe des Wertes in die Zeile ***
For i = 1 To 31 'xlzelle.CurrentRegion.Rows.Count - 1 ' #### Je nach Zeilen im Formular � _
nd
ern
If Me.Controls("lblZeile" & VBA.Format(Zeit, "hh")).Visible = True Then
If Me.Controls("Gekommentxt" & VBA.Format(Zeit, "hh")).Value Then
For j = 1 To xlzelle.CurrentRegion.Rows.Count - 1
If xlzelle.Offset(j, 13).Value = Me.Controls("lblZeile" & VBA.Format(Zeit,
"hh")).Caption Then
xlzelle.Offset(j, 5).Value = Me.Controls("Gekommentxt" & VBA.Format(Zeit
, "hh")).Value
xlzelle.Offset(j, 6).Value = Me.Controls("Pausetxt" & VBA.Format(Zeit, "
hh")).Value
xlzelle.Offset(j, 7).Value = Me.Controls("Gegangentxt" & VBA.Format(Zeit
, "hh")).Value
xlzelle.Offset(j, 8).Value = Me.Controls("Bemerkungtxt" & VBA.Format(Zei
t, "hh")).Value
End If
Next
End If
End If
Next
ActiveWorkbook.Save
'Application.Quit
'Unload Me
End Sub

Anzeige
AW: Excel Userform falsches Format Eingabe in Textbox
10.01.2018 22:10:49
Thomas
Hallo Ralf,
erstmal Danke für Deine Hinweise.
Ich wollte ja keine Komplettlösung zu meinem Problem, sondern lediglich einen Hinweis wo ich mich verrannt habe, denn ich will VBA verstehen.
Wenn ich zu Problemlösung zu wenig Informationen gegeben habe, dann tut es mir wirklich leid.
Vermutlich bin ich selbst schon "Vertriebsblind" und übersehen, dass Ihr gar nicht mein Problem erkennen könnt.
Vielen Dank für Deine Ehrliche Antwort und sobald ich wieder in Deutschland bin, werde ich mich nochmals melden.
Thomas

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige