Freigeben über

Excel Makro - Zeile Kopieren, Formelwert um eins erhöhen.

Anonym
2022-09-15T10:15:00+00:00

Liebes Forum, Liebe Community

Ich versuche zurzeit ein Makro zu schreiben, welches ca. 5 Zeilen kopiert, jedoch sollen sich die Formeln innerhalb dieser Zeilen um einen Wert erhöhen.

Also, sagen wir in der "=Matrix!$B$2" steht eine Nummer, die muss 5 mal wiederholt werden.

Bei den nächsten 5 Zeilen, soll aber "=Matrix!$B$3" als Wert verwendet werden und das bei der ganzen Zeile.

Mein Code sieht zurzeit so aus:

        LRow = .Cells(.Rows.Count, 1).End(xlUp).Row 

        .Range("A4:O8").Copy .Cells(LRow + 1, 1) 

        With .Range(.Cells(LRow + 1, 1), .Cells(LRow + 5, 1)) 

              .Formula = "=Kalkulation!" & Cells(4 + i, 1).Address

Es funktioniert zurzeit nur in einer Spalte.

Schlussendlich sollte es etwa so aussehen:

Vielen Dank für eure Hilfe

Harry

Microsoft 365 und Office | Excel | Geschäftlich | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
{count} Stimmen

5 Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2022-09-15T12:37:45+00:00

    Hallo Harry,

    dann probiere es mal so:

    Sub Test() 
    
    Dim LRow As Long 
    
    Dim i As Integer, x As Integer 
    
    With ActiveSheet 
    
          x = .Range("E1") 
    
          For i = 1 To x 
    
                LRow = .Cells(.Rows.Count, 1).End(xlUp).Row 
    
                .Range("A4:O8").Copy .Cells(LRow + 1, 1) 
    
                .Range(.Cells(LRow + 1, 1), Cells(LRow + 5, 1)).Formula = _ 
    
                       "=Matrix!" & Cells(2 + i, 2).Address 
    
                .Range(.Cells(LRow + 1, 4), .Cells(LRow + 5, 4)).Formula = _ 
    
                      "=Matrix!" & Cells(2 + i, 31).Address 
    
                .Range(.Cells(LRow + 1, 6), .Cells(LRow + 5, 6)).Formula = _ 
    
                      "=Matrix!" & Cells(2 + i, 15).Address 
    
          Next 
    
    End With 
    
    End Sub
    

    Claus

    0 Kommentare Keine Kommentare
  2. Anonym
    2022-09-15T12:08:47+00:00

    Hallo Claus

    Danke für deinen Input.

    Für eine einmalige Lösung würde es sicher klappen mit einem SVerweis.

    Jedoch ist das Dokument folgendermassen aufgebaut...

    Im ersten Register ist die Master Datei (Quellmatrix), auf welcher man entscheidet wie viele Datensätze erstellt werden und die Infos einträgt.

    Ca. 10 Register greifen simultan auf die Quellmatrix zu und lesen Daten aus.

    Per Makro werden dann jeweils die neuen X Zeilen erstellt. Meist wird nur eine Zeile kopiert, das ist einfach und funktioniert.

    Jedoch gibt es 3 Register die mehrere Zeilen erstellen und da wäre es eben gut, wenn sich die Formel nur um einen Wert erhöht, anstatt den X-Wert.

    Harry

    0 Kommentare Keine Kommentare
  3. Anonym
    2022-09-15T11:15:54+00:00

    Hallo Harry,

    wie ist Kalkulation aufgebaut? Vielleicht könnte man die Werte per SVERWEIS oder XVERWEIS übernehmen.

    Claus

    0 Kommentare Keine Kommentare
  4. Anonym
    2022-09-15T10:47:40+00:00

    Lieber Andreas

    Danke für deinen Tipp.

    Unglücklicherweise funktioniert es nicht ganz wie gewünscht.

    Es sollten alle Formeln Kopiert werden und dann nur um einen Wert erhöhen. (In der ganzen Range "A4:O8")

    Oder habe ich es falsch gemacht?

    Gruss

    Harry

    0 Kommentare Keine Kommentare
  5. Andreas Killer 144K Zuverlässigkeitspunkte Freiwilliger Moderator
    2022-09-15T10:20:45+00:00

    Ist wie im Blatt, mach das $ vor der Zeile weg:

    =Matrix!$B2

    https://docs.microsoft.com/de-de/office/vba/api/excel.range.address

     .Formula = "=Kalkulation!" & Cells(4 + i, 1).Address(0,1)

    Andreas.

    0 Kommentare Keine Kommentare