Hallo Julia,
in meiner Antwort in Beitrag #13 hatte ich folgendes geschrieben:
Zitat:Noch ein Hinweis, man kann auch auf einen Schlag einen Bereich mit einer Formel füllen, die Zelladressen passen sich bei richtigem Gebrauch an.
Aber es geht nicht so, wie Du es Dir vorstellst, sondern einfacher.
Folgendes Beispiel:
Du möchtest in der geöffneten Datei Verknüpfungen zu Zellen aus einer anderen Datei.
Dann würde um den Wert aus zelle A1 zu erhalten in der geöffneten Datei beispielsweise folgende Formel stehen:
=[Mappe1.xlsx]Tabelle1!A1
Mappe1 wäre die geschlossene Datei und in dieser die Zelle A1 aus Tabelle1, ok. so weit?
Nun möchtest Du aber nicht eine Zelle sondern einen Bereich einlesen.
Zum Beipiel den Bereich A1:A30.
Dazu würdest Du die Formel einfach runterziehen. und die Zelladresse würde sich aotomatisch anpassen. Auch klar, oder?
Um das per Code zu ereichen, müssen die Zellen nicht vorher mit dem Formeltorso also ohne "=" vorbelegt sein.
Es braucht nichts in den Zellen stehen.
Der Coide würde so aussehen:
Code:
Sub test()
Range("A1:B30").FormulaLocal = "=" & "[Mappe1.xlsx]Tabelle1!A1"
End Sub
Damit wäre der Bereich mit der Formel ausgefüllt und die Zelladresse passt sich automatich an.
Dann steht da
in A1: =[Mappe1.xlsx]Tabelle1!
A1
in A2: =[Mappe1.xlsx]Tabelle1!
A2
in A3: =[Mappe1.xlsx]Tabelle1!
A3
usw.
Also Formel nicht in die Zellen vortragebn, sondern mit dem Code reinschreiben. Es reicht dafür, dafür heißt in diesem Fall, die eine Zeile Code.