ich bin neu hier und bräcuhte eure Hilfe für folgendes Problem.
ich möchte über ein UserForm eine Tabelle füllen. Das klappt auch soweit.
Bei jedem Neueintrag soll in Spalte A das aktuelle Datum und in Spalte B die aktuelle Uhrzeit des Eintrags geschrieben werden. Die Daten werden in der regel morgens und abends in die Tabelle geschrieben.
Auch diese klappt soweit.
Dafür benutze ich folgende Code:
If OB1.Value = True Then
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = CDate(Date)
ActiveCell.Offset(0, 1).Value = CDate(Time)
ActiveCell.Offset(0, 2).Value = .TextBox2.Value
ActiveCell.Offset(0, 3).Value = .ComboBox1.Value
If .CheckBox1.Value = True Then
ActiveCell.Offset(0, 4).Value = "ja"
Else
If UF1.TextBox2.BackColor = vbRed Then
ActiveCell.Offset(0, 4) = "ja"
Else
ActiveCell.Offset(0, 4).Value = "nein"
End If
End If
End If
Würde in der Tabelle so aussehen
03.03.2015 07:00 ... ... ...
04.03.2015 07:00 ... ... ...
05.03.2015 19:00 ... ... ...
06.03.2015 07:00 ... ... ...
06.03.2015 19:00 ... ... ...
Ich möchte auch wieder über ein UserForm nach den Einträgen suchen und diese mir im UserForm anzeigen lassen.
Nun zu meinem Problem:
Nur nach dem Datum zu suchen ist kein Problem, das bekomme ich mit folgendem Code hin:
Sheets("Tabellenblatt1").Select
Range("A:A").Select
If Selection.Find(What:=.TextBox1.Value, after:=ActiveCell, Lookat:=xlPart, SearchDirection:=xlNext, MatchCase:=False).Activate Then
.TextBox2.Value = ActiveCell.Offset(0, 2).Value
.TextBox4.Value = ActiveCell.Offset(0, 3).Value
Else
fehler1:
MsgBox "Der eingegebene Wert " & .TextBox1.Value & " konnte nicht gefunden werden! Bitte das Datum überprüfen und im Format tt.mm.jjjj eintragen!"
End If
Mein Hauptproblem besteht darin, dass wenn ich nach folgendem suche z.B. 06.03.2015 05:oo Uhr mir die Daten vom 06.03.2015 anzeigt, die aber erst um 7 morgens in die Tabelle geschrieben wurden. In diesem Fall bräuchte ich die des letzten Eintrags vom 05.03.2015. 19:00 bzw. wenn ich nach 06.03.2015 09:00 Uhr suche die Daten vom Eintrag 06.03.2015 07:00 und wenn ich nach Daten suche 06.03.2015 19:30 die vom 06.03.2015 19:00...
Habs es mit folgendem Code ausprobiert, der stellenweise auch funktioniert:
If OB1.Value = True Then
On Error GoTo fehler
Range("A:A").Select
If Selection.Find(What:=wert, after:=ActiveCell, Lookat:=xlPart, SearchDirection:=xlNext, MatchCase:=False).Activate Then
checkTime
Else
fehler:
MsgBox "Der eingegebene Wert " & .TextBox1.Value & " konnte nicht gefunden werden! Bitte das Datum überprüfen und im Format tt.mm.jjjj eintragen!"
End If
End If
Private Sub checkTime()
Dim ka As Date 'such datum
Dim ka1 As Date 'datum dienstbeginn vortag
Dim ka2 As Date 'datum dienstbeginn abends
Dim TickTack As Date 'Uhrzeit dienstbeginn
Dim TickTack1 As Date 'such Uhrzeit
Dim TickTack2 As Date 'Uhrzeit dienstbeginn abens
Dim TickTack3 As Date 'Uhrzeit dienstbeginn vortag
TickTack1 = CDate(UF4.TextBox6.Value)
TickTack = ActiveCell.Offset(0, 1).Value
TickTack2 = ActiveCell.Offset(1, 1).Value
TickTack3 = ActiveCell.Offset(-1, 1).Value
ka = ActiveCell.Value
ka1 = ActiveCell.Offset(-1, 0).Value
ka2 = ActiveCell.Offset(1, 0).Value
If TickTack1 > TickTack And TickTack1
Hoffe ich habe es nicht zu kompliziert geschrieben und ihr könnt mir bei meinem Problem helfen. Für eure Bemühung bedanke ich mich schon einmal im Voraus...
Besten Grüße
Stefan