Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA For Each

Forumthread: VBA For Each

VBA For Each
04.05.2026 15:03:22
dieschmid
Hallo

Wie kann ich mit einer For Each Schleife in einem Formular den Value Wert einer Textbox ändern?

Vielen Dank im Voraus

Dieter
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA For Each
04.05.2026 16:23:45
Onur
Wenn ich genauso allgemein spreche wie du es tust: Mit VBA.
Nebenbei bemerkt: For-Each für EINEN Wert und EINE Textbox ? For-Each (wie der Name schon sagt) nimmt man, um in einer Menge jedes einzelne Element zu durchforsten.
AW: VBA For Each
04.05.2026 16:38:55
dieschmid
Hallo

Ich will versuchen das Problem zu konkretisieren. Ich habe ein Formular (UserForm1). In diesem Formular liegen 11 Textboxen. (Textbox1 bis Textbox12). Die Textbox5 fehlt. Ich kann nun schreiben Textbox1. value = "", usw. Meine Frage ist, kann und wie kann man die Sache mit einer For Each Schleife lösen und muss das Formular bei der Durchführung geöffnet sein? VVielen Dank

Dieter
Anzeige
AW: VBA For Each
04.05.2026 16:44:20
Onur
Lies dir das mal GENAU durch, dann weisst du, wie es geht.
Das mit "Userform geöffnet oder nicht" macht natürlich nur Sinn, wenn die Userform bereits befüllt ist. Wenn aber der User die Textboxen ausfüllt, kannst du natürlich nicht vorher schon irgend etwas überprüfen.
AW: VBA For Each
05.05.2026 13:36:22
snb
Es können in einem Userform keine Texboxes 'fehlen'. Wenn z.B. Textbox5 'fehlt' sollte man die Textboxen umbenennen, damit keine 'Lücke ' entsteht.

Mein Vorschlag:

Private Sub UserForm_Click()

For Each it In Controls
If TypeName(it) = "TextBox" Then it.Text = it.Name
Next
End Sub

Anzeige
AW: VBA For Each
04.05.2026 17:32:21
Herbert Grom
Hallo Dieter,

und wenn du es mit "For - Next" probierst, evtl. so:

Sub test()

Dim a%
For a = 1 To 12
If a = 5 Then
Else
Controls("TextBox" & a).Value = XXX
End If
Next a
End Sub


Servus
Anzeige
AW: VBA For Each
05.05.2026 08:19:58
RPP63
Moin!
Ich beziehe mich jetzt mal konkret auf den Satz:
»Ich kann nun schreiben Textbox1. value = "", usw.«
Wenn Du alle Controls auf den Ausgangswert zurücksetzen willst, brauchst Du keine Schleife!
Es reicht
Unload Me

UserForm1.Show

Gruß Ralf
Anzeige
AW: VBA For Each
05.05.2026 09:30:12
dieschmid
Danke Toller Tipp!!!!
AW: VBA For Each
04.05.2026 17:56:02
dieschmid
Hallo Onur und Herbert Grom

Eure Antworten haben mir gut gefallen. Mir haben nur die Schlüsselworte Object und Controls gefehlt.

Vielen Dank

Dieter
AW: VBA For Each
05.05.2026 19:32:37
Yal
Moin,

Sub test()

Dim a%
For Each a In Array(1,2,3,4,6,7,8,9,10,11,12)
Controls("TextBox" & a).Value = XXX
Next a
End Sub

VG
Yal
Anzeige
AW: VBA For Each
05.05.2026 20:55:18
Onur
Hallo Yal,

Warum dann überhaupt "For Each", wenn die Anzahl bereits bekannt ist ? Der Vorteil von "For Each" ist doch, dass du weder Anfangs- noch Endwert angeben muss und zudem auch noch Lücken ignoriert werden. Dein Code downgradet "For Each" unter Zuhilfenahme eines Arrays zu einer "For Next"-Schleife.


Gruß
Onur
Anzeige
AW: VBA For Each
07.05.2026 19:54:13
Yal
Hallo Onur,

ja, in der Tat. Ich habe nicht soviel über die Sinnhaftigkeit des Codes philosophiert, sondern einfach die Situation genutzt, um einen Beispiel für einen For Each mit vordefinierte Liste zu geben.

Sinnvoller ist, wenn die Auflistung eher heterogen wäre:
For Each farbe In Array("blau", "grün", "lila")

VG
Yal
Anzeige
AW: VBA For Each
04.05.2026 21:03:42
dieschmid
Hallo zusammen

Ich habe beide Versionen getestet und beide funktionieren. Die For - Schleife hat den Nachteil, dass sie manuell gepflegt werden muss. Wenn ein Element fehlt, muss es ausgeblendet werden. Die For Each - Schleife läuft darüber hinweg.

Schönen Abend

Dieter
AW: VBA For Each
04.05.2026 21:30:06
Onur
Genau. Erstens ist es egal, wieviele es sind und zweitens hast du auch den Vorteil, dass der Code dann Lücken ignoriert (z.B. wenn du Textboxen 1 bis 8 hast, aber ohne die Textbox6).
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18