Clever-Excel-Forum

Normale Version: Syntax For .. Next
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Als Newbie bin ich ganz stolz auf mein erstes Programm, welches auch fehlerlos arbeitet. Allerdings würde ich natürlich gerne gewisse "Abläufe" verschönern, denn der Code sieht für euch Profis wohl ned soooo prickelnd aus.
Folgendes Code möchte ich mit einer For ... Next Schlaufe vereinfachen:

Frage1 = Worksheets(ListBox1.Value).Cells(2, 1)
Frage2 = Worksheets(ListBox1.Value).Cells(3, 1)
Frage3 = Worksheets(ListBox1.Value).Cells(4, 1)
Frage4 = Worksheets(ListBox1.Value).Cells(5, 1)
Frage5 = Worksheets(ListBox1.Value).Cells(6, 1)
Frage6 = Worksheets(ListBox1.Value).Cells(7, 1)
Frage7 = Worksheets(ListBox1.Value).Cells(8, 1)
Frage8 = Worksheets(ListBox1.Value).Cells(9, 1)
Frage9 = Worksheets(ListBox1.Value).Cells(10, 1)
Frage10 = Worksheets(ListBox1.Value).Cells(11, 1)
Frage11 = Worksheets(ListBox1.Value).Cells(12, 1)
Frage12 = Worksheets(ListBox1.Value).Cells(13, 1)

Ich habe es so umgesetzt, doch ist der Syntax nicht korrekt:

Dim f As Integer
f = 1
For f = 1 To 12
  Frage(f) = Worksheets(ListBox1.Value).Cells(f + 1, 1)       
Next

Ob mir da wieder jemand kurz behilflich sein kann? Ihr seid nämlich wirklich grossartig.
Liebe Grüsse
Matthias
Code:
DIM Frage (1 to 12) As Variant '(oder String oder Zahlentyp)
VBA arbeitet eigentlich mit nullbasierten Arrays - das solltest du dir auch angewöhnen. Ich war hier mal zu faul, den weiteren Code zu ändern, also lasse ich es ausnahmsweise so stehen.

F = 1 ist aber überflüssig.

Gewöhne dir bitte auch an, Fehlermeldungen zu lesen und bei Fragen wiederzugeben. Das hilft dir und uns.
Vielen Dank für die schnelle Antwort. Leider habe ich vergessen zu sagen, dass "Frage1" bis "Frage12" jeweils der Name einer Textbox ist, welche sich im UF befinden.
Deine Antwort ergibt zwar keine Fehlermeldung,  führt aber zu leeren Textboxen.

Die Fehlermeldungen kann ich nächstes Mal gerne auch widergeben.
(26.04.2024, 00:33)matthias wehrli schrieb: [ -> ]Die Fehlermeldungen kann ich nächstes Mal gerne auch widergeben.
Warum irgendwann und nicht sofort? 

Ja, diese winzige Information, dass es sich um Steuerelemente in einer Userform handelt, wäre gut gewesen. ;)

Code:
Me.Controls("Frage" & f).Text = …

Früher oder später wirst du Wege finden, wie es besser geht - aber für den Anfang reicht es.
Touché!
Vielen Dank für die abermals schnelle und freundliche Antwort. Das hat mir sehr geholfen. Mein Code wurde grad um etwa 100 zeilen kürzer ;)