ISt doch dynamisch!? Hatte ja geschrieben:
ActiveSheet.ListObjects("Liste2").Resize Range("$K$8:$M$290")
Solltest nur den Startwert kennen und der Endwert (beim Bsp 290) ergibt sich ja aus deiner Differenz.
Also deine Differenz berechnest du ja im Code vorher, wobei du eigentlich nur den Wert von zMax1 brauchst. Damit wird das immer wieder angepasst. Also die 290 bzw. die differenz solltest du nicht direkt angeben, sondern nur die Variable diff. Habe mal eine Lösung gebastelt. Ichgehe davon aus, dass die ListObject einspaltig sind. Wenn nicht, müsste man das anpassen.
Also wie unten würde er dir das dann berechnen und eigentlich auch erweitern. Ist getestet , müsste aber ggf. angepasst werden. Einfach mal prüfen und ggf. melden. VG
Dim lr As ListRow
Dim lo1 As ListObject
Dim lo2 As ListObject
Dim zMax1 As Long
Dim zMax2 As Long
Dim diff As Long
Dim i As Long
dim bereich
dim Parameter
Set lo1 = Worksheets("Ausarbeitung").ListObjects("Tab_Ausarbeitung")
Set lo2 = Worksheets("Kalkulation").ListObjects("Tab_Kalkulation")
zMax1 = lo1.ListRows.Count
'ab hier neu
'untersucht die Adresse von TabKalkulation und filtert Spalte bzw. Zeile raus.
bereich = Split(lo2.Range.Address, ":")
Parameter = Split(bereich(0), "$")
'hier wird in Abhängigkeit neu gesetzt bei mehrspaltiger Tabelle müsste man hier noch was ändern
lo2.Resize Range(Parameter(1) & Parameter(2) & ":" & Parameter(1) & Parameter(2) + zMax1)
|