ich möchte ein Kombinationsfeld eimal per Auswahl ausfüllen (was auch funktioniert), aber zusätzlich auch per Übergabe ausfüllen können.
Hintergrund:
In meinem Kassenbuch kann ich die Blattauswahl (je Monat ein Blatt) über Kombinationsboxen auswählen lassen. 1 Kobinationsfeld für den Tag, eines für den Monat. Das Jahr wird automatisch hinzugefügt. Um die Eingabe des Datums zu vereinfachen, habe ich nun ein Textfeld hinzugefügt in welchem ich nur noch 0107 oder 29.11 eingeben muß. Daraus wird ein komplettes Datum generiert und in ein Label.Caption geschrieben (das wird zur Zeilensuche gebraucht).
Der Tag wird korrekt in das Kombinationsfeld für den Tag geschrieben und das Kombinationsfeld für den Monat wird aktiviert - ABER nicht ausgefüllt (und somit auomatsch das dem Monat entsprechende Tabellenblatt ausgewäht)
Im Archiv habe ich einige Ansätze gefunden - aber ich bekomme das nicht hin...
Kann mir jemand von Euch helfen?
Im Voraus vielen Dank,
Udo
Diesen Code habe ich hinter meinem Textfeld:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim sDatum As String
Dim sEingabe As String
Dim sMonat As String
Dim sTag As String
If Not Me.TextBox1.Value = "" Then ' TextBox ist nicht leer ?
Application.EnableEvents = False
On Error GoTo Fehler
' die eingegebenen Punkte eliminieren - leider auch führende Nullen
sEingabe = CStr(CLng(Trim(Me.TextBox1.Value)))
' ist der Tag mit führender Null eingegeben worden - z. B. 01.04 ?
If Left(Me.TextBox1.Value, 1) = "0" Or _
Len(sEingabe) = 3 Then
sEingabe = "0" & sEingabe
End If
If Len(sEingabe) = 4 Then ' als TTMM/TT.MM
sTag = Left(sEingabe, 2)
sMonat = Mid(sEingabe, 3, 2)
End If
sDatum = sTag & "." & sMonat & "." & TextBox_Jahr.Value
If IsDate(sDatum) Then
Label10.Caption = sDatum
CBTag.Value = sTag
CBMonat.SetFocus
If sMonat = "01" Then CBMonat.Value = "Januar"
ElseIf sMonat = "02" Then CBMonat.Value = "Februar"
ElseIf sMonat = "03" Then CBMonat.Value = "März"
ElseIf sMonat = "04" Then CBMonat.Value = "April"
ElseIf sMonat = "05" Then CBMonat.Value = "Mai"
ElseIf sMonat = "06" Then CBMonat.Value = "Juni"
ElseIf sMonat = "07" Then CBMonat.Value = "Juli"
ElseIf sMonat = "08" Then CBMonat.Value = "August"
ElseIf sMonat = "09" Then CBMonat.Value = "September"
ElseIf sMonat = "10" Then CBMonat.Value = "Oktober"
ElseIf sMonat = "11" Then CBMonat.Value = "November"
ElseIf sMonat = "12" Then CBMonat.Value = "Dezember"
End If
Worksheets(CBMonat.Text).Activate
Application.EnableEvents = True
On Error GoTo 0
End If
Exit Sub
Fehler:
Application.EnableEvents = True
End Sub
Und diesen Code habe ich hinter meinen Kombinationsfeldern:
Private Sub CBMonat_Change()
Worksheets(CBMonat.Text).Activate
Label10.Caption = CDate(CBTag.Value & "." & CBMonat.Value & "." & TextBox_Jahr.Value)
Frame2.Visible = True
Range("B9:E54").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="0", Formula2:="0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = False
.Italic = False
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.14996795556505
End With
Selection.FormatConditions(1).StopIfTrue = False
Cells(5, 6).Activate
End Sub