Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Syntax For .. Next
#1
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
Antworten Top
#2
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.
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • matthias wehrli
Antworten Top
#3
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.
Antworten Top
#4
(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.
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • matthias wehrli
Antworten Top
#5
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 ;)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste