Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

For schleife mit mehreren Variablen nacheinander durchlaufen

For schleife mit mehreren Variablen nacheinander durchlaufen
10.08.2023 16:26:18
Philipp
Hallo zusammen,

bin leider auf ein Problem gestoßen welches ich anscheinend nicht lösen kann. Grundsätzlich möchte ich Eingaben von einer Userform prüfen ob sie nicht leer sind. Da es sich um exakt den selben Vorgang handelt wollte ich dies mit einer For Schleife lösen. Sprich der Code soll einfach Prüfen ob die Eingabe von beispielsweise dem Vornamen leer ist, falls ja soll eine Message-box ausgegeben werden die auch variabel aufgebaut ist. Ich hoffe man kann halbwegs folgen was ich vor habe.

Anbei noch mein Versuch das ganze zu lösen:

Die Variablen Vorname, Nachname, Adresse, Postleitzahl, Land sollten zu einem früheren Zeitpunkt schon gefüllt worden sein, falls der User jedoch ein Feld übersehen hat und nicht gefüllt hat, sollte das hier zu einer Meldung führen bzw. im Anschluss nochmal die Userform öffnen und das entsprechende Feld gelb markiert hervorheben. Ich habe schon einige Varianten versucht, bin bis jetzt nur leider nicht auf ein positives Ergebnis gestoßen.
        

'Prüfung ob ein Feld leer gelassen wurde

For Ablauf = 1 To 6
If Ablauf = 1 Then Variable = Vorname
If Ablauf = 2 Then Variable = Nachmame
If Ablauf = 3 Then Variable = Adresse
If Ablauf = 4 Then Variable = Postleitzahl
If Ablauf = 5 Then Variable = Land

If Variable = "" Then

MsgBox ("Feld " & Variable & " ist leer!")
UserForm1.Controls("TextBox" & Ablauf).BackColor = RGB(255, 255, 0)
UserForm1.Show

Else

End If


Next Ablauf


Danke schon mal für eure Hilfe! :)

LG Philipp

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
For schleife mit mehreren Variablen nacheinander durchlaufen
10.08.2023 17:02:43
volti
Hallo Philipp,

ich würde es komplett anders machen, z.B. direkt bei der Userformbearbeitung oder zumindest mit Array statt der vielen Variablen, aber um bei Deinem Vorgabecode zu bleiben....

Für die vielen IF-Verschachtelungen nimmt man SELECT CASE. Und als Hinweis in der Messagebox möchtest Du sicher nicht immer den leeren Text der Variablen ausgeben sondern die Bezeichnung dazu oder?

Hier mal ein Vorschlag, allerdings ungetestet....

Sub Test()

Dim Ablauf As Integer, Bez As String

For Ablauf = 1 To 5
Select Case Ablauf
Case 1: Variable = Vorname: Bez = "Vorname"
Case 2: Variable = Nachmame: Bez = "Nachname"
Case 3: Variable = Adresse: Bez = "Adresse"
Case 4: Variable = Postleitzahl: Bez = "Postleitzahl"
Case 5: Variable = Land: Bez = "Land"
End Select

If Variable = "" Then
MsgBox ("Das Feld '" & Bez & "' ist leer!" & vbLf & vbLf & "Bitte ausfüllen!"), vbCritical, "Prüfung"
UserForm1.Controls("TextBox" & Ablauf).BackColor = RGB(255, 255, 0)
UserForm1.Show
End If
Next Ablauf
End Sub


Gruß Karl-Heinz

Anzeige
For schleife mit mehreren Variablen nacheinander durchlaufen
10.08.2023 19:12:26
onur
Warum so kompliziert?
Du musst jeder Textbox unter Eigenschaften (Textbox.Tag) einen Titel geben (z.B. "Vorname", "Nachname" usw.)
Dann kannst du mit
For i=1 To 6

If UserForm1.Controls("TextBox" & i)="" Then MsgBox "Feld " & UserForm1.Controls("TextBox" & i),Tag & " wurde nicht ausgefüllt"
End If

alles überprüfen.
For schleife mit mehreren Variablen nacheinander durchlaufen
12.08.2023 09:46:53
GerdL
Moin Philipp!
arrVar = Array(Vorname, Nachname, Adresse, Postleitzahl, Land)

arrNam = Array("Vorname", "Nachname", "Adresse", "Postleitzahl", "Land")
For X = 0 To 4
If arrVar(X) = "" Then
Userform1.Controls("TextBox" & X + 1).BackColor = RGB(255, 255, 0)
strMsg = strMsg & ", " & arrNam(X)
End If
Next
If Len(strMsg) > 0 Then
MsgBox "Leer: " & Mid(strMsg, 3) & " !"
Userform1.Show
End If

Gruß Gerd
Anzeige
For schleife mit mehreren Variablen nacheinander durchlaufen
14.08.2023 06:15:21
Philipp
Hallo zusammen,

danke für die 3 verschiedenen Lösungsansätze, werde ich mir anschauen sobald ich wieder dazu komme :)

Vielen Dank!!

LG

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige