Hallo Mr.K
Vielen Dank für Deine schnelle Rückmeldung und die guten Erklärungen. Ich habe den Code unfunktioniert, damit dieser über einen CommandButton aktiviert wird. Hintergrund ist, dass ich mich gerade an einem Projekt für unsere
Arbeit versuche, welches mehrer Userformen, Labels Textboxen besitzt.
So habe ich gestern noch versucht die automatische Aktualisierung, in einem anderen Code einzubringen.
Sub MR1()
Dim i As Integer
Dim AusgewaehlteMilkrun As String
Dim ZeitenMilkrunTxt As String
ZeitenMilkrunTxt = "06:10,06:50,08:10,08:50,09:40,10:20,11:00,11:40,12:40,13:20,14:10,15:30,16:50,18:30,19:50,21:30,22:50,00:10,01:50,03:10,04:50"
Dim ZeitenMilkrun As Variant
ZeitenMilkrun = Split(ZeitenMilkrunTxt, ",")
Dim TempDatumMitZeit, TempAktuelleZeit, TempMilkrunTime, TempMilkrunNextTime, MindstZeitAbstand As Date
'Mindestens Zeitabstand 5 Minutes
MindstZeitAbstand = TimeSerial(0, 5, 0)
TempDatumMitZeit = Now()
TempAktuelleZeit = TimeSerial(Hour(TempDatumMitZeit), Minute(TempDatumMitZeit), Second(TempDatumMitZeit))
AusgewaehlteMilkrun = ZeitenMilkrun(0)
'Jede 'Zeile' der ZeitenMilkrun
For i = 0 To UBound(ZeitenMilkrun) - 1 '-1 weil die nächste Position wird in der Funktion benutzt
'in Type Time umwandeln
TempMilkrunTime = TimeSerial(Split(ZeitenMilkrun(i), ":")(0), Split(ZeitenMilkrun(i), ":")(1), 0)
TempMilkrunNextTime = TimeSerial(Split(ZeitenMilkrun(i + 1), ":")(0), Split(ZeitenMilkrun(i + 1), ":")(1), 0)
If TempAktuelleZeit >= CDate(TempMilkrunTime - MindstZeitAbstand) And TempAktuelleZeit <= CDate(TempMilkrunNextTime - MindstZeitAbstand) Then
AusgewaehlteMilkrun = ZeitenMilkrun(i + 1)
Exit For
End If
Next i
'Milkrun Anzeigen
Label64.Caption = AusgewaehlteMilkrun
End Sub
Und zwar in diesen. Allerdings hab ich das nicht hinbekommen, da hier dan die Fehlermeldung nicht ausreichender Stapelspeicher kommt. Warscheinlich laufen dann zu viele Routinen im Hintergrund.
Ziel diese Makros soll sein, dass die oben angegeben Zeiten sich im Label64 bei geöffneter Userform ebefalls
automatisch aktualisieren. Dies funktioniert in diesem Zustand aber nicht, sondern nur wenn die UserForm geschlossen und wieder geöffnet wird. Es müsste doch eigentlich auch möglich sein, die komplette Userform über eine Zeischiene zu aktualisiere, so dass die Label und Textboxen gleich mit neu eingelesen sind.
Mit Me.Repaint und Logistik.Repaint hab ich es versucht, geht aber irgenwie nicht. Noch zur Info die UserForm mit Namen Logistik um welche es hier geht, soll nur als Anzeige dienen. Das einzige was im Prinzip dann geändert wird, ist der Status in ComboBoxen von offen auf erledigt.mit Farbe Rot und Grün je nach Status. Jedoch ist das ein anderes Thema, genauso wie die Userformen zum Teil von einer Access - Datenbank gefüttert
werden.
Gruß
Detlef