Clever-Excel-Forum

Normale Version: Formeln per Makro x mal runterziehen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich bin auf der Suche nach einem Makro wie ich eine Formel für eine bestimmte (variable) Anzahl runterziehen kann.

In der Beispieldatei habe ich meine Wertetabelle die in A3 beginnt und Formeln aus anderen Tabellenblättern zusammenträgt.
Ich kenne die maximale Formelanzahl (lässt sich berechnen), hier 12.

Jetzt würde ich gerne den Bereich A4 : D4 um die Anzahl in C2 runterziehen.

In der Beispieldatei habe ich eine Ausgangssituation dargestellt und wie ich mir das Ergebnis vorstelle.

Kennt dafür jemand eine Lösung?

Falls noch Fragen bestehen, immer her damit

Viele Grüße

Felix
Hallo,

ändere die Formel so ab:


Code:
=WENN(ZEILE(A1)>$C$2;"";WENN(AUFRUNDEN((ZEILE()-3)/$D$1;0)+1<=$B$1+1;AUFRUNDEN((ZEILE()-3)/$D$1;0)+3;""))

Dann kannst Du sie beliebig nach unten ziehen, siehst es aber nicht!
Hey,

danke erstmal, es geht aber nicht unbedingt ums nicht sehen.

Wenn ich es nur bis 1000 runtergezogen habe, muss ich eben dran denken, dass ich es ab 1001 noch mal ziehen muss.

Ich könnte natürlich schon mal vorsorglich bis 50.000 ziehen, allerdings wird die Datei dann ja unnötig groß. Außerdem berechnet Excel die dann auch, sind dann aber leer. Dennoch vergeht Rechenzeit.

Deshalb war meine Idee das flexibel mit einem Makro zu lösen.
Hallo,


solange Du keine volatilen Formeln oder Matrixfunktionen/ -formeln benutzt dürfte das nicht ins Gewicht fallen. Wenn Du eine intelligente Tabelle draus machst, dann werden die Formeln bei jeder neuen Zeile automatisch ergänzt!
hhmmm....

ich weiß zwar nicht genau, was du mit volatilen Formeln meinst, aber mit deiner Formel wird nichts automatisch ergänzt :(

Also scheint das mal nicht Lösung meines Problems zu sein.
Also ich habe jetzt mal mit dem Makrorekorder folgendes aufgenommen:

Code:
Sub formel_autofill()


   Sheets("Ausgang").Select
   Range("A4:D4").Select
   Selection.AutoFill Destination:=Range("A4:D5"), Type:=xlFillDefault
   Range("A4:D5").Select
   
End Sub
Jetzt müsste daraus doch nur eine Schleife gemacht werden, die immer eins nach unten geht und zwar so oft wie der Wert in C2
Soweit die Theorie, allerdings habe ich echt wenig Ahnung von Schleifen :D
Kann mir da jmd helfen?
Hallo,

Code:
with Sheets("Ausgang")
   .Range("A4:D4").AutoFill Destination:=.Range("A4:D" & 4+ .Range("C2"))
end With

ungetestet!
Oh mann danke, es funktioniert...

Ich verstehe deine Lösung zwar nicht ganz, aber es funktioniert. DANKE!!!!

hier mal mein Versuch einer Schleife, es funktioniert aber nicht...

Code:
Code:Sub formel_autofill()

Dim Zeile As Integer


Sheets("Ausgang").Select
For Zeile = 4 To 10

   
   Range(Cells(1, Zeile), Cells(4, Zeile)).Select
   Selection.AutoFill Destination:=Range(Cells(1, Zeile), Cells(4, Zeile)), Type:=xlFillDefault
   Range(Cells(1, Zeile), Cells(4, Zeile + 1)).Select
   
Next Zeile
   
End Sub
Hallo,


Aufbau von Range:


Code:
cells(Zeile,Spalte)


!!!!
Seiten: 1 2