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.

Eine bestimmte, wiederkehrende Folge mit VBA
#1
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


Angehängte Dateien
.xlsx   Frage.xlsx (Größe: 10,53 KB / Downloads: 10)
Antworten Top
#2
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


Angehängte Dateien
.xlsm   Frage.xlsm (Größe: 16,83 KB / Downloads: 1)
Antworten Top
#3
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:
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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