Kein Problem aber das macht der Code automatisch., da brauchst du nix mehr reinschreiben. Unten mal etwas ausfürhlich zur Erklärung. Der Code ist jetzt für eine mehrspaltige Tabelle. Er sucht sich die Spaltenbuchstaben und ändern für den Bereich nur die Zeilenanzahl. VG
Bspw. dein Tabelle in Kalkulation ist im Bereich A3:AF20 und die Tabelle in Bearbeitung hat 30 Zeilen dann soll am Ende lo2 (deine Tabelle) im Bereich A3 bis AF33 sein. Der Code macht da folgendes.
Aufteilen der Ausgangsadresse in die Teile rechts und links vom Doppelpunkt
bereich = Split(lo2.Range.Address, ":")
bereich(0) ist der linke und bereich(1) der rechte Teil der Adresse. Die Teile sind aber immer noch mit $ eingefasst (lasse ich hier mal weg, stört soweit nicht) . Also nochmal nach $ teilen. Parameter1 ist dabei links und Paraemter 2 rechts vom : Als die erste Zelle (links oben) und die letzte Zelle (rechts unten ) der Tabelle.
'die erste Zelle
Parameter1 = Split(bereich(0), "$")
'die letze Zelle
Parameter2 = Split(bereich(1), "$")
IN den Parametern sind nun in den Berich ParameterX(1) die Spaltenbuchstaben und in ParamterX(2) die Zeilennummern. Aus diesen WErten wird nun der neue Bereich ermittelt. Es gilt ja mit dem WEg bisher:
bereich (0) = A3 war ja der linke Teil
Parameter2(1) = AF (ist die Spalte vom rechten wert)
Parameter1(2) = 3 (die Zeile vomlinken WErt)
zMasx1 = 30 (war ja schon berechnet)
mit den Vorgaben ergibt sich nun für die Zeile hier:
lo2.Resize Range(bereich(0) & ":" & Parameter2(1) & Parameter1(2) + zMax1)
lo2.Resize Range(A3:AF33)
so wie gewollt. :-)
|