VBA Autofill mit dynamischen Bereich

Bild

Betrifft: VBA Autofill mit dynamischen Bereich
von: Marcus
Geschrieben am: 27.08.2015 16:55:25

Hallo zusammen,
ich benötige erneut die Hilfe von euch Profis, da ich in diversen Foren keine Lösung für mein Problem gefunden habe und mit meinem Latein am Ende bin.
Ich habe eine recht große dynamische Excelliste mit teils umfangreichen bedingten Formatierungen. Per Schaltfläche möchte ich vor der letzten Zeile eine neue einfügen und die Formatierung aus 2-3 Zeilen darüber bis zum Ende übernehmen, da es mir sonst die bedingte Formatierung zerschießt.
Manuell markiere ich bisher die letzte Zeile, füge mit STRG + eine neue darüber ein, markiere eine Zeile etwas weiter oben und ziehe die gesamte Formatierung nach unten. Mit dem Makrorecorder lässt sich das wunderbar aufzeichnen und nachvollziehen, jedoch fügt er ja immer an derselben Stelle die neue Zeile ein.
Folgende beide Codes funktionieren nur teils:

Sub NeueZeile1()
Rows(Cells(Rows.Count, 1).End(xlUp).Row).Select
Selection.Insert Shift:=xlDown
Rows(Cells(Rows.Count, 1).End(xlUp).Row - 3).Select
Selection.AutoFill Destination:=Selection.Resize(2, Selection.Columns.Count), Type:= _
xlFillFormats
End Sub

Sub NeueZeile2()
Dim lngLast As Long
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
Set SourceRange = Range("A8:J8")
Rows(Cells(Rows.Count, 1).End(xlUp).Row).Select
Selection.Insert Shift:=xlDown
SourceRange.AutoFill Destination:=Range("A8:J" & lngLast), Type:=xlFillFormats
End Sub
Im ersten Makro markiert er mir nach dem Einfügen die 4.-letzte Zeile, aber übernimmt die Formatierung nicht bis zum Ende. Im zweiten schon, wobei ich nicht den festen Bereich “A8:J8“ bzw. “A8:J“ angeben möchte, da die Spaltenzahl variieren kann und die Formatierung hier leider schon ab der ersten Zeile (in dem Fall 8) übernommen wird.
Meine Versuche bei Destination:=Range den Startpunkt als dynamischen Bereich festzulegen endeten immer in Fehlermeldungen.
Ich würde mich freuen, wenn mir jemand helfen kann. Danke im Voraus.
Gruß, Marcus

Bild

Betrifft: Alternative
von: Jürgen V.
Geschrieben am: 28.08.2015 12:34:56
Hallo Marcus,
wäre es keine Option für Dich, die Daten als Tabelle / Liste zu formatieren? Beim Anfügen von Daten erweitert diese sich (inkl. Formatierungen) automatisch
Gruß, Jürgen

Bild

Betrifft: AW: Alternative
von: Marcus
Geschrieben am: 28.08.2015 12:50:05
Hallo Jürgen,
das meinte ich mit "ich habe eine dynamische Excelliste". Also sie ist als Tabelle formatiert, eben weil die ja sonst so Klasse sind. Die Bedingte Formatierung passt sich dabei aber nur zum Teil an. Einige der Formatierungen enthalten Formeln (simples Beispiel: =$A9<>$A8). Dieser Bezug wird "zerstört", wenn ich vor A9 eine neue Zeile einfüge. Dann steht in der Formatierung: =$A10<>$A8. Wenn man das Format einer ganzen Zeile über die neu eingefügten Zeilen zieht, ist das wieder sauber. Jedoch gelingt mir das noch nicht per Makro.
Mfg Marcus

Bild

Betrifft: AW: Alternative
von: Marcus
Geschrieben am: 01.09.2015 13:16:00
Der Typ von Jürgen mit dem Anfügen klappt nur teils. Die Liste wird zwar erweitert und die bedingte Formatierung auch, aber die normale Formatierung wird nicht beibehalten. Vermutlich weil bei der Entwicklung der Liste verschiedene Rahmen, Farben etc. verwendet wurden als letztendlich jetzt zu sehen sind, kommen nach dem Anfügen neuer Datensätze wieder die "alten" Formatierung - z.B. Rahmen wo sie nicht hingehören.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Autofill mit dynamischen Bereich"