Clever-Excel-Forum

Normale Version: Neue Zeile einfügen + Formeln übernehmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Moin zusammen,

ich wollte mal wieder in die Runde fragen, ob ihr einen guten VBA Tipp habt :)

Und zwar möchte ich einfach nur einen Button in Zelle A1 platzieren, der mir eine neue Zeile unterhalb der markierten Zelle einfügt und dabei alle Formeln aller Zellen, der darüber liegenden Zeile übernimmt...

Bisher habe ich das hier versucht:

Code:
ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(1).EntireRow.Copy
ActiveCell.Offset(1).EntireRow.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats
Application.CutCopyMode = False

Hier werden aber die Formeln nicht mit übernommen, was mache ich da falsch?

Danke euch und viele Grüße!
Moin!
Warum VBA?
Wandel Deine Liste in eine "intelligente Tabelle mittels Strg+t um.
Wenn Du jetzt direkt darunter weiter schreibst, werden Formate und Formeln übernommen.

Gruß Ralf
Moin,

bei meiner Tabelle ist es aber erforderlich, dass zwischendurch immer mal wieder neue Zeilen hinzukommen müssen und nicht nur unterhalb der letzten Zeile ...

Viele Grüße
Macht doch nix!
Benutze die rechte Maustaste und "Zeile/Spalte einfügen"
Ok, ginge auch, finde ich aber nicht ganz so elegant vor allem, weil die Tabelle immer ihre eigene Formatierung hat.

Also ich würde es auch rein vom Verständnis her gerne mit VBA verstehen und umsetzen ;)
"Thou shalt not build a macro for something that Excel already does."
Jake Lohse

Aus https://www.mrexcel.com/excel-tips/i-use...soft-word/.
Ok, habe ich auch verstanden.
Aber wo liegt denn nun der Fehler in meinen paar Zeilen VBA? :)
Überlege, was jeweils .Offset(1) bewirkt.

Vom Handy, Ralf
(12.07.2020, 11:47)xlsxvba schrieb: [ -> ]Aber wo liegt denn nun der Fehler in meinen paar Zeilen VBA? :)

Hallo, :19:

in der zweiten Codezeile: :21:

Code:
ActiveCell.Offset(1).EntireRow.Copy

Du kopierst da eine leere Zeile - nämlich die eingefügte Zeile (auf Grund des Offset).

Schreibe es so:

Code:
ActiveCell.EntireRow.Copy
Danke Dir :)
Das hatte ich aber auch schon probiert.

Dann werden aber auch Werte mit kopiert ...

VG
Seiten: 1 2