Clever-Excel-Forum

Normale Version: Formeln kopieren (runterziehen) bis Zeile X
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,
 
ich habe wieder mal ein Excel-Problem für welches ich VBA benötige:
 
In einem Tabellenblatt habe ich in den Zellen A56:Z20000 Werte stehen und in den Zellen AF56:BG56 Formeln die diese Werte auswerten. In der Zelle „AA3“ habe ich eine schon funktionierende Formel, welche die Nummer der letzten mit Werten gefüllten Zeile errechnet.
 
Bis zu dieser Zeile sollen die Formeln in AF56:BG56 heruntergezogen werden, also wenn in Zelle „AA3“ z.B. die Zahl 124 steht, dann bis zur Zeile 124 (AF124:BG124) und wenn in Zelle „AA3“ 12000 steht, dann eben bis zur Zeile 12000.
 
Das Ziel besteht darin, die Anzahl der Formeln auf das notwendigste zu reduzieren, zumal es in meiner Tabelle 20 derartige Tabellenblätter gibt. Dabei reicht es mir aber, wenn das Makro nur für jedes Tabellenblatt separat funktioniert.
 
Vielen Dank im Voraus für eventuelle Hilfen.
Hallöchen,

nutze mal den Excel-Word-Makrorekorder

Der bringt Dir etwas in der Art:

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    Range("B1").Select
    Selection.Copy
    Range("B1:B8").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End Sub


Den Bereich kannst Du mit dem Zellwert flexibel gestalten, z.B. wenn der in D1 steht

Range("B1:B" & Range("D1").Value) ...

Eventuell musst Du noch die eine oder andere Zeile verrechnet, aber Grundrechenarten funktionieren auch in VBA Smile
Mit 365 reicht eine einzige Formel aus. Mehr bei Gestellung Deiner Datei.
Vielen Dank!

Bei mir sieht das Relorder-Makro etwas anders aus. Aber mit deinem Zusatz "Range("AB10").Value)" funktioniert alles so, wie es soll. Noch einmal vielen Dank!

Sub Zone_Formel_runterkopieren_Fixieren()
    Range("AF55:CX55").Select

    Selection.AutoFill Destination:=Range("AF55:CX" & Range("AB10").Value), Type:=xlFillDefault

    Range("AF56:CX" & Range("AB10").Value).Select

    Selection.Copy

    Range("AF56").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Range("AF54").Select

    Application.CutCopyMode = False
End Sub