Bestimmte TextBoxen in Userform prüfen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox MsgBox
Bild

Betrifft: Bestimmte TextBoxen in Userform prüfen
von: Uli
Geschrieben am: 15.07.2015 12:21:11

Moin moin,
ich habe ein kleines Problem bei meinem Formular. Ich habe einige Textboxen und Comboboxen. Bestimmte Textboxen werden nur aktiv, wenn eine vorherige Textbox ausgefüllt wurde. Bevor ich auf "OK" klicke und die Daten in eine Tabelle eingetragen werden, geprüft werden, ob ganz bestimmte Textboxen befüllt wurden.
Mein Code lautet:


Private Sub cmdOK_Click()
Dim letzteZeile As Long
Dim objtxt As Object
Set quelle = Worksheets("Anträge")
Set ziel = Worksheets("Wohnungsbau")
Set daten = Worksheets("Daten")
letzteZeile = quelle.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    With Me
        For Each objtxt In .Controls
            If TypeName(objtxt) = "TextBox" Then
                If objtxt.Value = "" Then
                MsgBox " Bitte die Textfelder ausfüllen!", 48
                objtxt.SetFocus
                Exit Sub
            End If
        End If
        Next
                quelle.Cells(letzteZeile, 1).Value = lbldatum
                quelle.Cells(letzteZeile, 2).Value = .txtakz
                ....
    End With
Unload Me
End Sub
Dabei prüft er jede Textbox. Wie lautet der code, wenn er bestimmte Textboxen nicht überprüfen soll?
Danke für Eure Hilfe

Bild

Betrifft: AW: Bestimmte TextBoxen in Userform prüfen
von: PeTeR
Geschrieben am: 15.07.2015 12:32:52
Hi Uli,
deine Textboxen haben ja auch Namen. Darüber kannst du bestimmte Textboxen prüfen:
If Me.Textbox1.value="" then
msgbox "Bitte Textbox 1 füllen"
me.textbox1.setfocus
exit sub
end if
3 Textboxen prüfen heisst 3 Mal If...then...end if
Viel Erfolg
PeTeR

Bild

Betrifft: AW: Bestimmte TextBoxen in Userform prüfen
von: Uli
Geschrieben am: 15.07.2015 12:54:30
Vielen Dank. Und wenn ich 28 Textboxen habe, von denen nur zwei nicht geprüft werden müssen? Geht das auch im Ausschlußverfahren?

Bild

Betrifft: AW: Bestimmte TextBoxen in Userform prüfen
von: Nepumuk
Geschrieben am: 15.07.2015 18:28:35
Hallo,
würde ich so machen:

Private Sub cmdOK_Click()
    Dim letzteZeile As Long
    Dim objControl As Control
    
    Set quelle = Worksheets("Anträge")
    Set ziel = Worksheets("Wohnungsbau")
    Set daten = Worksheets("Daten")
    
    letzteZeile = quelle.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    For Each objControl In Controls
        If TypeOf objControl Is MSForms.TextBox Then
            Select Case objControl.Name
                Case "TextBox1", "TextBox2"
                    'mach nix
                Case Else
                    If objControl.Value = "" Then
                        MsgBox " Bitte die Textfelder ausfüllen!", vbExclamation
                        objControl.SetFocus
                        Exit Sub
                    End If
            End Select
        ElseIf TypeOf objControl Is MSForms.ComboBox Then
            Select Case objControl.Name
                Case "ComboBox1", "ComboBox2"
                    'mach nix
                Case Else
                    If objControl.ListIndex = -1 Then
                        MsgBox " Bitte etwas auswählen!", vbExclamation
                        objControl.SetFocus
                        Exit Sub
                    End If
            End Select
        End If
    Next
    
    quelle.Cells(letzteZeile, 1).Value = lbldatum
    quelle.Cells(letzteZeile, 2).Value = txtakz
    ....
    
    Unload Me
    
End Sub

Gruß
Nepumuk

Bild

Betrifft: AW: Bestimmte TextBoxen in Userform prüfen
von: Uli
Geschrieben am: 15.07.2015 12:50:54
vielen Dank Peter,
die Prozedur habe ich probiert und ist natürlich bei 28 Textboxen bzw. Comboboxen sehr lang.
Es brauchen lediglich 3 Textboxen und eine combobox nicht geprüft werden. Geht es dann auch irgendwie im Ausschlußverfahren leichter?

Bild

Betrifft: AW: Bestimmte TextBoxen in Userform prüfen
von: PeTeR
Geschrieben am: 15.07.2015 18:33:44
Hallo Uli,
ungetestet würde ich es so probieren: Angenommen Textbox1, Textbox15 und Textbox21 sollen NICHT geprüft werden:
With Me
For Each objtxt In .Controls
If TypeName(objtxt) = "TextBox" Then
If objtxt.name<>"Textbox1" and objtxt.name<>"Textbox15" and objtxt.name<>"Textbox21" then
If objtxt.Value = "" Then
MsgBox " Bitte die Textfelder ausfüllen!", 48
objtxt.SetFocus
Exit Sub
end if
End If
End If
Next

quelle.Cells(letzteZeile, 1).Value = lbldatum
quelle.Cells(letzteZeile, 2).Value = .txtakz
....
End With

Bild

Betrifft: AW: Bestimmte TextBoxen in Userform prüfen
von: Uli
Geschrieben am: 16.07.2015 09:24:13
Vielen Dank an Euch beiden. Es hat wunderbar funktioniert. Vor allem, wie schnell hier die Antworten kommen. Das ist echt der Hammer.

Bild

Betrifft: AW: Bestimmte TextBoxen in Userform prüfen
von: Daniel
Geschrieben am: 16.07.2015 09:29:41
Hi
für solche Fälle gibt es Select Case


Select Case objtxt.name
    Case "Textbox1", "Textbox15", "Textbox21"
    Case Else
        ...
        hier dann der weitere Code
        ...
end Select
Gruß Daniel


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Bestimmte TextBoxen in Userform prüfen"