AW: Datum Umwandeln Zu Excel-Beispiel112600v.xls
27.11.2007 12:46:07
Schuster
Hallo Otto,
Danke für die Schnelle Antwort. Ich bin leider erst jetzt zum Testen gekommen. Ich habe vielleicht auch vergessen, noch was mitzuteilen:
Ich habe eine Userform, in der ich Daten eingebe. Diese sollen dann bei Klick von einem CommandButton (cmd_Daten_eintragen) übernommen werden.
Wenn ich nun Deinen Vorschlag einbaue, kommt ein Datum falsches Datum: Eingabe: 261107 Ausgabe in Zelle: 01.04.2423.
Auszug aus meinem Code:
Private Sub TextBoxBest_Tag_Change() Dim dteEingabe As Date
Dim iDay As Integer, iMonth As Integer, iYear As Integer
If TextBoxBest_Tag.Text = "" Then Exit Sub
If Not IsNumeric(Right(TextBoxBest_Tag.Text, 1)) Then
Beep
TextBoxBest_Tag.SelStart = Len(TextBoxBest_Tag.Text) - 1
TextBoxBest_Tag.SelLength = 1
LabelAusgabe_Best_Dat.Caption = "Nur Ziffern erlaubt!"
Exit Sub
Else
LabelAusgabe_Best_Dat.Caption = ""
End If
iDay = CInt(Left(TextBoxBest_Tag.Text, 2))
Select Case Len(TextBoxBest_Tag.Text)
Case 0
Case 1
If iDay > 3 Then
Beep
TextBoxBest_Tag.SelStart = 0
TextBoxBest_Tag.SelLength = 1
LabelAusgabe_Best_Dat.Caption = "Maximal 31 Tage"
Else
LabelAusgabe_Best_Dat.Caption = ""
End If
Case 2
If iDay > 31 Then
Beep
TextBoxBest_Tag.SelStart = 0
TextBoxBest_Tag.SelLength = 2
LabelAusgabe_Best_Dat.Caption = "Maximal 31 Tage"
Else
LabelAusgabe_Best_Dat.Caption = ""
End If
Case 3
iMonth = CInt(Right(TextBoxBest_Tag.Text, 1))
If iMonth > 1 Then
Beep
TextBoxBest_Tag.SelStart = 2
TextBoxBest_Tag.SelLength = 1
LabelAusgabe_Best_Dat.Caption = "Maximal 12 Monate"
Else
LabelAusgabe_Best_Dat.Caption = ""
End If
Case 4
iMonth = CInt(Right(TextBoxBest_Tag.Text, 2))
If iMonth > 12 Then
Beep
TextBoxBest_Tag.SelStart = 2
TextBoxBest_Tag.SelLength = 2
LabelAusgabe_Best_Dat.Caption = "Maximal 12 Monate"
Else
LabelAusgabe_Best_Dat.Caption = ""
End If
Select Case iMonth
Case 2
If iDay > 29 Then
Beep
TextBoxBest_Tag.SelStart = 0
TextBoxBest_Tag.SelLength = 4
LabelAusgabe_Best_Dat.Caption = "Maximal 29 Tage"
Else
LabelAusgabe_Best_Dat.Caption = ""
End If
Case 4, 6, 9, 11
If iDay > 30 Then
Beep
TextBoxBest_Tag.SelStart = 0
TextBoxBest_Tag.SelLength = 4
LabelAusgabe_Best_Dat.Caption = "Maximal 30 Tage"
Else
LabelAusgabe_Best_Dat.Caption = ""
End If
End Select
Case 6
iMonth = CInt(Mid(TextBoxBest_Tag.Text, 3, 2))
iYear = CInt(Right(TextBoxBest_Tag.Text, 2))
If iYear Mod 4 > 0 And iMonth = 2 And iDay = 29 Then
Beep
TextBoxBest_Tag.SelStart = 0
TextBoxBest_Tag.SelLength = 6
LabelAusgabe_Best_Dat.Caption = "Maximal 28 Tage"
Else
dteEingabe = DateSerial(iYear, iMonth, iDay)
LabelAusgabe_Best_Dat.Caption = dteEingabe & vbLf & Format(dteEingabe, "dddd")
TextBoxBest_Tag.SelStart = 0
TextBoxBest_Tag.SelLength = 6
End If
End Select
End Sub
Private Sub cmd_Daten_eintragen_Click()
'Daten in Tabelle eintragen
Sheets("Laufkarte_Inhalt").Activate
Range("B5").Select
With frmLaufkarte_schreiben
' ActiveCell.Offset(Zeile, Spalte).Value=.Textbox.value
ActiveCell.Offset(0, 1).Value = .TextBoxAngebotsnummer.Value
ActiveCell.Offset(0, 3).Value = .TextBoxBestell_Nr.Value
ActiveCell.Offset(0, 4).Value = .TextBoxKommission.Value
ActiveCell.Offset(0, 5).Value = Format(TextBoxBest_Tag, "DDMMYY")
ActiveCell.Offset(0, 6).Value = CDate(TextBoxLiefer_Tag)
End With
Dim cntr As Control
For Each cntr In Controls
If TypeName(cntr) = "TextBox" Then
cntr.Text = ""
End If
Next cntr
Call Auto_ausfuellen
End Sub