INDEX statt INDIREKT und VBA
18.02.2022 14:40:31
Ingo
Ich habe eine Tabelle mit Daten, die jederzeit durch eine Power Query Abfrage überschrieben werden. Dadurch verändern sich stets die Feldinhalte und die Anzahl Zeilen dieser Tabelle.
Mein Ziel ist es, durch runterkopieren einer entsprechenden Formel bis zur momentanen letzten Zeile der dynamischen Tabelle, die Werte aus einer bestimmten Spalte dieser dynamischen Tabelle in eine Spalte rechts von dieser Tabelle zu kopieren. Und am Ende soll das ganze per VBA funktionieren.
Ich habe bereits 2 "Bausteine", mit denen ich meine bereits kurz vor der Lösung zu stehen, schaffe aber selber nicht den letzten Schritt.
Um die Daten aus der dynamischen Tabelle zu holen, nutze ich zur Zeit die Funktion =INDIREKT("d"&ZEILE($I3)) .
Ich merke aber, dass die Funktion INDIREKT extrem Ressourcen frisst, und habe gehört, dass dies durch Umstellung auf Funktion INDEX vermieden werden könnte.
Eine entsprechende Grundformel habe ich auch bereits =INDEX(A:G;3;4).
Meine Frage hierzu: Wie kann ich die Angabe für den Zeilenindex (hier die 3 für 3. Zeile) anpassen, damit der Zeilenindex beim runterkopieren hochgezählt wird?
Für das angestrebte runterkopieren der Formel per VBA, limitiert bis zur letzten vorhandenen Zeile der dynamischen Quelltabelle, habe ich auch bereits einen funktionierenden Code mit einer fiktiven Formel erstellt, in dem eben dann nur noch die vorgenannte, von mir gesuchte Formel integriert werden muss.
Hier mein Code, mit der Frage, ob ich dann die von mir gesuchte Formel 1:1 in den Code übernehmen kann, oder ob die Formel für VBA anders geschrieben werden muss?
Sub FormelRunterKopieren()
Range("P:P").Clear
Dim iRow As Integer
iRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("$P3").Formula = "=$J3"
Range("$P3:P" & iRow).FillDown
End Sub
Kann mir hier jemand von euch weiterhelfen?Gruss Ingo