Clever-Excel-Forum

Normale Version: Eine bestimmte, wiederkehrende Folge mit VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebes Forum

ich habe folgende Frage:

Ich muss aus Tabelle 2 mehrmals Zeilen auslesen.
Dabei ist das Prinzip immer gleich.  Es gibt eine Referenzzeile (im Beispiel B1) und davon ausgehend ergeben sich die Zeilen der anderen 31 Zeilen. Diese sind immer als 'Tabelle2!'&Wert zu sehen.


Die Referenzzeile ergibt sich immer aus dem Startbefehl (später dann ein bestimmtes Stichwort). Der Startbefehl ist immer an gleicher Stelle relativ zu den anderen Werten und könnte demnach auch als Referenzzeile gelten. Das ist aber manchmal nach 8, manchmal nach 10 Zeilen und dementsprechend unterschiedlich lang ausgelesen werden. Aber zunächst einmal stehe ich vor dem Problem des Auslesens per se.

Nun habe ich ein paar Ansätze...Cells(i,2), Loops,relative Verweise. Aber leider bin ich doch noch neu bei VBA, sodass ich offenbar immer wieder irgendwelche Fehler einbaue.

Im Anhang seht ihr auch nochmal genau, wie es aussehen soll
Könnt ihr mir helfen?

Viele Grüße
Philipp
Hallo,

vielleicht etwas präziser oder mit mehr Code.

Das will ich ausgegeben haben:

Sub IterationBrandvieleJahre1()

Dim n As Integer
Dim t As Integer

For n = 1 To 8
For t = 1 To 5

Cells(((1 - 1) * 8) + n, 1) = Cells(36 + n, 2)
Cells(((2 - 1) * 8) + n, 1) = Cells(36 + n, 2)
Cells(((3 - 1) * 8) + n, 1) = Cells(36 + n, 2)
Cells(((4 - 1) * 8) + n, 1) = Cells(36 + n, 2)
Cells(((5 - 1) * 8) + n, 1) = Cells(36 + n, 2)


'Die erste Zahl, die hochgezählt wird sind die Jahre (t),die von 1-5 hochgezählt werden sollen, dann kommt n (max). Der Rest würde so bleiben, wie es ist.

Next n
'Next t

End Sub


Jetzt möchte ich aber noch 5 als t Automatisieren und dass sich die 8 ändert, wenn sich n ändert.

Mein Ansatz funktioneirt aber leider nicht. :/

Sub IterationBrandvieleJahre3()

Dim n As Integer
Dim t As Integer

For n = 1 To 8
For t = 1 To 5

Cells(n + ((t - 1) * 8), 1) = Cells(36 + n, 2)


Next n
Next t

End Sub


Bei mir kommt dann aber der Hinweis ungültiger verweis auf next Steuervariable und es wird in n gesprungen.
Ich hatte noch überlegt, ob es vll mit
If n = 8 Then Next t, damit das next immer erst einen hochzählt, wenn alle 8 "n"s durch sind, aber das hat auch nicht geklappt.

Viele Grüße
Philipp
Hallöchen,

mal zum ersten Fehler

Zitat:Bei mir kommt dann aber der Hinweis ungültiger verweis auf next Steuervariable und es wird in n gesprungen.

Tausche mal die beiden Next-Zeilen Smile Wenn Du durch zwei Türen in einen Raum gehst und die hinter Dir zumachst, hast Du beim Rausgehen sicher auch Probleme, wenn Du die äußere Tür zuerst öffnen willst - Fernbedienung mal ausgeschlossen :22: