Ich habe mir eine Stundentabelle erstellt und diese so gestaltet, dass alle Felder in der UserForm ausgefüllt sein müssen, bevor die Daten in eine Tabelle übernommen werden. Jetzt stoße ich allerdings an meine Grenzen und für mich wird es zu kompliziert. Daher benötige ich Hilfe.
Folgendes soll noch eingearbeitet werden: Wenn in der ComboBox1, die Einträge "Urlaub, Feiertag oder Krank" ausgewählt werden, dann soll TextFeld2 und TextFeld3 ausgeblendet werden. Dann soll naturlich auch nicht der Hinweis erscheinen "Es wurden nicht alle Textfelder ausgefüllt." und die Daten sollen ohne Befüllen in die Tabelle übernommen werden. TextFeld1 und die ComboBox1 müssen aber trotzdem beide befüllt werden, sonst soll wieder der Hinweis kommen "Es wurden nicht alle Textfelder ausgefüllt."
Ich hoffe, dass ich es einigermaßen verständlich beschreiben konnte und hoffe auf Eure Hilfe.
Private Sub ComboBox1_Change()
End Sub
Private Sub CommandButton1_Click()
Dim objtxt As Object
For Each objtxt In UserForm1.Controls
If TypeName(objtxt) = "TextBox" Or (TypeName(objtxt) = "ComboBox") Then
If objtxt.Value = "" Then
MsgBox " Es wurden nicht alle Textfelder ausgefüllt.!", 48
objtxt.SetFocus
Exit Sub
End If
End If
Next
Dim erste_freie_Zeile As Integer
ActiveSheet.Unprotect Password:=""
erste_freie_Zeile = Sheets("Stundennachweis").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Stundennachweis").Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
Sheets("Stundennachweis").Cells(erste_freie_Zeile, 2) = Format(TextBox2.Text, "hh:mm")
Sheets("Stundennachweis").Cells(erste_freie_Zeile, 3) = Format(TextBox3.Text, "hh:mm")
Sheets("Stundennachweis").Cells(erste_freie_Zeile, 4) = ComboBox1.Text
Unload Me
ActiveSheet.Protect Password:=""
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub TextBox3_Change()
End Sub
Private Sub UserForm_Initialize()
Dim Wiederholungen As Integer
For Wiederholungen = 2 To Sheets("Hilfstabelle").Range("A65536").End(xlUp).Row
ComboBox1.AddItem Sheets("Hilfstabelle").Cells(Wiederholungen, 1)
Next
End Sub
|