Hi Leute
Ich brauche wiedermal eure Hilfe für ein kleines Projekt.
Ich programmiere gerade einen Mini Kalender für Excel, da der integrierte Date And Time Picker nicht funktioniert. (Version: Excel 2003 Student Edition). Das Aufrufen des Kalenders, sowie die Datumswahl funktionieren schon mal korrekt. Auch das Einfügen eines Datums in eine Zelle im Tabellenblatt. Die Datumsangaben habe ich mit der DateSerial Funktion in die jeweiligen CommandButtons in meiner Userform (es sind ca. 35) geladen. Nun möchte ich den Buttontext mit den Datumsangaben mit dem aktuellen Datum vergleichen. Dazu habe ich folgenden Code in den SpinButton, der mir die Monate durchschaltet, geschrieben:
Private Sub SpinButton1_Change()
'Monate anzeigen!
TextBox1.Value = SpinButton1.Value
'Kalendertage eintragen!
Dim Jahre As Date
Dim Monate As Date
Dim Tage As Date
Jahre = UserForm1.ComboBox1
Monate = UserForm1.TextBox1.Value
Tage = 1
If Monate = 1 Then
UserForm1.CommandButton1.Caption = CDate(DateSerial(Jahre, Monate, Tage) – 4)
UserForm1.CommandButton2.Caption = CDate(DateSerial(Jahre, Monate, Tage) - 4 + 1)
UserForm1.CommandButton3.Caption = CDate(DateSerial(Jahre, Monate, Tage) - 4 + 2)
UserForm1.CommandButton4.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 3)
UserForm1.CommandButton5.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 4)
UserForm1.CommandButton6.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 5)
UserForm1.CommandButton7.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 6)
UserForm1.CommandButton9.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 7)
UserForm1.CommandButton10.Caption = CDate( DateSerial(Jahre, Monate, Tage) - 4 + 8)
UserForm1.CommandButton11.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 9)
UserForm1.CommandButton12.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 10)
UserForm1.CommandButton13.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 11)
UserForm1.CommandButton14.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 12)
UserForm1.CommandButton8.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 13)
UserForm1.CommandButton16.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 14)
UserForm1.CommandButton17.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 15)
UserForm1.CommandButton18.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 16)
UserForm1.CommandButton19.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 17)
UserForm1.CommandButton20.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 18)
UserForm1.CommandButton21.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 19)
UserForm1.CommandButton15.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 20)
UserForm1.CommandButton23.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 21)
UserForm1.CommandButton24.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 22)
UserForm1.CommandButton25.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 23)
UserForm1.CommandButton26.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 24)
UserForm1.CommandButton27.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 25)
UserForm1.CommandButton28.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 26)
UserForm1.CommandButton22.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 27)
UserForm1.CommandButton30.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 28)
UserForm1.CommandButton31.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 29)
UserForm1.CommandButton32.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 30)
UserForm1.CommandButton33.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 31)
UserForm1.CommandButton34.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 32)
UserForm1.CommandButton35.Caption = CDate (DateSerial(Jahre, Monate, Tage) - 4 + 33)
UserForm1.CommandButton29.Caption = CDate( DateSerial(Jahre, Monate, Tage) - 4 + 34
End If
'Kalendertage auf aktuelles Datum prüfen!
Dim i As Integer
For i = 1 To 35
If UserForm1.Controls("CommandButton" & i).Caption = Date Then
UserForm1.Controls("CommandButton" & i).ForeColor = &HFF&
End If
Next i
Der Code „Kalendertage auf aktuelles Datum prüfen“ funktioniert irgendwie nicht. Eine Fehlermeldung kommt nicht. Es passiert nichts.
Wenn ich den Code:
Private Sub CommandButton1_Change()
If Monate =9 And CommandButton1.Caption=Date Then
CommandButton1.ForeColor=&HFF&
End If
End Sub
Direkt in den CommandButton schreibe und auf den Button klicke funktionirt es und die Farbe ändert sich. Es scheint also an der Schleife, wie die CommandButtons angesprochen werden zu liegen.
Wie kann ich von allen CommandButon in der Userform den Captiontext mit dem aktuellen Datum vergleichen? Hoffe, dass Mir auch diesmal geholfen werden kann.