Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1836to1840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formel fortschreiben per VBA

Formel fortschreiben per VBA
15.07.2021 16:36:15
Robert
Hallo liebe Exelexperten!
Ich muß noch mal um Eure Hilfe bitten. Habe jetzt versucht eine Formel mit Pfad je 26 Zeilen zwei Leerzeilen und wieder 26 Zeilen usw. zu schreiben, habe mit dem Makrorekorder finde ich eine Lösung, welche ich selbst händeln kann. Aber dem ist nicht so. Erschwerend kommt noch dazu, das ich die Kalenderwoche im Dateinamen habe und diese nach den 26 positionen immer um eins nach oben gehen sollte. Also KW 1, Kw2 usw.. Hier mein Versuch.

Sub Makro3()
' Makro3
ActiveCell.FormulaR1C1 = _
"='N:\Datencenter\KW\[53KW2020.xlsm]Zentral Zeitg.Werbg.'!R[2]C[-1]"
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"='N:\Datencenter\KW\[53KW2020.xlsm]Zentral Zeitg.Werbg.'!R[2]C[-1]"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C27"), Type:=xlFillDefault
Range("C2:C27").Select
ActiveWindow.SmallScroll Down:=6
Range("C30").Select
ActiveCell.FormulaR1C1 = _
"='N:\Datencenter\KW\[01KW2021.xlsm]Zentral Zeitg.Werbg.'!R[-26]C[-1]"
Range("C30").Select
Selection.AutoFill Destination:=Range("C30:C54"), Type:=xlFillDefault
Range("C30:C54").Select
ActiveWindow.SmallScroll Down:=30
Range("C57").Select
ActiveCell.FormulaR1C1 = _
"='N:\Datencenter\KW\[02KW2021.xlsm]Zentral Zeitg.Werbg.'!R[-53]C[-1]"
Range("C57").Select
Selection.AutoFill Destination:=Range("C57:C81"), Type:=xlFillDefault
Range("C57:C81").Select
ActiveWindow.SmallScroll Down:=21
Range("C84").Select
ActiveCell.FormulaR1C1 = _
"='N:\Datencenter\KW\[03KW2021.xlsm]Zentral Zeitg.Werbg.'!R[-80]C[-1]"
Selection.AutoFill Destination:=Range("C84:C108"), Type:=xlFillDefault
Range("C84:C108").Select
Range("I79").Select
End Sub
Die Formel in der Fortgeschrieben werden müsste lautet so

N:\Datencenter\KW\[53KW2020.xlsm]Zentral Zeitg.Werbg.'!B4
B4 am Ende müsste immer bis B28 gehen.
Vielleicht könnt Ihr mir helfen. Habt mir gestern schon in ähnlicher Mission geholfen. Aber darauf baut halt der nächste Schritt auf. Bitte nicht böse sein.
Danke im voraus.
LG Robert

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel fortschreiben per VBA
15.07.2021 17:14:36
Yal
Hallo Robert,
Weil Du gerade in C2 bist, sind

ActiveCell.FormulaR1C1 = "='N:\Datencenter\KW\[53KW2020.xlsm]Zentral Zeitg.Werbg.'!R[2]C[-1]"
und

ActiveCell.Formula = "='N:\Datencenter\KW\[53KW2020.xlsm]Zentral Zeitg.Werbg.'!B4"
gleichwertig.
Der Makro-Rekorder nimmt viel "Menschenverhalten" auf, was ein g'scheiten Code nicht braucht.
Versuch zu verstehen, was da passiert und probiere zu abstrahieren.
_ in C2 gehen
_ die Anbindung an B4 vom anderen Tabelle als Formel einfügen
_ 78 Zeilen nach unten erweitern
_ nach 52 Zeile 2 leere Zeilen einfügen
_ nach 26 Zeile 2 leeren Zeilen einfügen
Reihenfolge beachten (Warum? :-)

Sub Makro3()
Range("C2").Formula = "='N:\Datencenter\KW\[53KW2020.xlsm]Zentral Zeitg.Werbg.'!B4"
Range("C2:C84").FillDown
Range("54:55").Insert Shift:=xlDown
Range("28:29").Insert Shift:=xlDown
End Sub
VG
Yal
Anzeige
AW: Formel fortschreiben per VBA
15.07.2021 17:50:12
Robert
Hallo Yal!
Danke Dir für Deine Hilfe und werde Deine Variante probieren in der Hoffnung, das ich wieder ein Schritt weiter Selbstständiger werden kann.
LG Robbert
AW: Formel fortschreiben per VBA
15.07.2021 17:18:33
Daniel
Hi
Für ein Jahr von KW1 bis KW52 so:

Dim F1 as String
Dim F2 as String
Dim F3 as String
Dim i as long
Const a as long = 26 'Formelzeilen pro KW-block
Const b as long = 28  'Blockabstand
Const c as long = 2 'Startzeile in Zieldatei
F1 = "='N:\Datencenter\KW\[xxKWyyyy.xlsm]Zentral Zeitg.Werbg.'!B4"
F2 = Replace(F1, "yyyy", "2021")
For i = 1 to 52 ' ggf auf 53 anpassen wenn erforderlich
F3 = Replace(F2, "xx", Format(i, "00"))
Cells((i - 1) * b + c, 3).Resize(a).formula = F3
Next
Gruß Daniel
Anzeige
AW: Formel fortschreiben per VBA
15.07.2021 17:47:43
Robert
Hallo Daniel!
Funzt wie verrückt und ist für mich als Laien gut erweiterbar. Ich Danke Dir von ganzen Herzen.
LG Robert
AW: Formel fortschreiben per VBA
15.07.2021 19:02:17
Yal
Ach so. Jetzt sehe ich, dass ich ziemlich viel übersehen habe.
@Robert: vergiss meinen Lösungsvorschlag. Daniel hat die richtige Antwort.
VG
Yal
AW: Formel fortschreiben per VBA
15.07.2021 19:13:06
Robert
Hallo Yal!
Trotzdem Danke für Deine Mühe.
LG Robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige