Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Zeile einfügen und Formel übernehmen

VBA Zeile einfügen und Formel übernehmen
15.09.2015 11:11:10
Dietz
Hallo,
wie müsste der Code aussehen wenn ich eine Zeile markiere und eine neue Zeile einfüge, dabei aber die Formeln von oben übernehme?
    Selection.Insert Shift:=xlDown
und weiter?
Gruß
Dietz

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeile einfügen und Formel übernehmen
15.09.2015 11:46:04
Beverly
Hi Dietz,
vielleicht eine Möglichkeit:
Sub Kopieren()
Selection.Insert Shift:=xlDown
Selection.Offset(-1).Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub


Anzeige
AW: VBA Zeile einfügen und Formel übernehmen
15.09.2015 12:17:33
Dietz
Danke Beverly,
das klappt schonmal. Eine weitere Frage hätte ich da noch.
Wie müsste ich das handhaben wenn ich nur bestimmte Zellen mit Formeln von oben runterkopieren will und nicht gleich die ganze Zeile.
Dabei geht es mir in erster Linie um die Zellen aus Spalte B,E,G,K,M,N,O,P, U und V.
Gruß
Dietz

Anzeige
AW: VBA Zeile einfügen und Formel übernehmen
15.09.2015 13:30:30
Beverly
Hi Dietz,
Sub Kopieren()
Dim lngZeile As Long
Selection.Insert Shift:=xlDown
Selection.Offset(-1).Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
lngZeile = Selection.Row
Union(Range(Cells(lngZeile, 3), Cells(lngZeile, 4)), Cells(lngZeile, 6), _
Range(Cells(lngZeile, 8), Cells(lngZeile, 10)), Cells(lngZeile, 12), _
Range(Cells(lngZeile, 17), Cells(lngZeile, 20))).ClearContents
End Sub


Anzeige
AW: VBA Zeile einfügen und Formel übernehmen
15.09.2015 13:53:44
Dietz
Danke Beverly,
auch das klappt wunderbar, auch wenn es nicht ganz das ist was ich gesucht hatte. Aber nicht schlimm. Ich wollte erst eine Zeile einfügen. Und dann eventuell in einem weiteren Makro nur die bestimmten Zellen runter kopieren anstatt sie nur zu leeren wie in deinem Fall.
Danke und Gruß
Dietz

Anzeige
AW: VBA Zeile einfügen und Formel übernehmen
15.09.2015 15:28:38
Beverly
Hi Dietz,
da dein Zellbereich mit den Formeln nicht zusammenhängend ist, müsstest du jede Zelle bzw. jeden zusammenhängenden Zellbereich einzeln kopieren - das Löschen der nicht benötigten Zellen dagegen macht den Code schlanker.


Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Zeile einfügen und Formeln übernehmen


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du ALT + F11 drückst.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeinDokument)“, wähle „Einfügen“ und dann „Modul“.
  3. Kopiere den folgenden VBA-Code in das Modul:
    Sub ZeileEinfügenUndFormelÜbernehmen()
       Selection.Insert Shift:=xlDown
       Selection.Offset(-1).Copy
       Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
       SkipBlanks:=False, Transpose:=False
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Deinem Excel-Dokument.
  5. Markiere die Zeile, unter der Du eine neue Zeile einfügen möchtest.
  6. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf „Ausführen“ klickst.

Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004“: Dieser Fehler tritt auf, wenn Du versuchst, eine Zeile einzufügen, während die Auswahl ungültig ist. Stelle sicher, dass Du eine Zeile markiert hast, bevor Du das Makro ausführst.

  • Lösung: Überprüfe die Auswahl: Stelle sicher, dass Du eine gültige Zeile markiert hast. Wenn Du die Zeile mit Formeln von oben übernehmen möchtest, vergewissere Dich, dass die Zeile über der markierten Zeile Formeln enthält.


Alternative Methoden

  • Direktes Einfügen ohne VBA: Du kannst auch manuell eine Zeile einfügen, indem Du mit der rechten Maustaste auf die Zeilennummer klickst und „Zeile einfügen“ wählst. Danach kannst Du die Formeln manuell kopieren.

  • Formelübernahme mit „Füllen“: Markiere die Zellen in der Zeile oberhalb, die Du kopieren möchtest, und ziehe das Füllkästchen nach unten in die neue Zeile.


Praktische Beispiele

  1. Einfügen einer neuen Zeile mit allen Formeln:

    Sub NeueZeileMitFormelEinfügen()
       Selection.Insert Shift:=xlDown
       Selection.Offset(-1).Resize(1).Copy
       Selection.PasteSpecial Paste:=xlPasteFormulas
    End Sub
  2. Einfügen einer neuen Zeile und nur bestimmter Zellen:

    Sub BestimmteZellenKopieren()
       Dim lngZeile As Long
       Selection.Insert Shift:=xlDown
       lngZeile = Selection.Row
       Union(Range(Cells(lngZeile, 2), Cells(lngZeile, 2)), _
             Range(Cells(lngZeile, 5), Cells(lngZeile, 5)), _
             Range(Cells(lngZeile, 7), Cells(lngZeile, 7))).Copy
       Selection.PasteSpecial Paste:=xlPasteFormulas
    End Sub

Tipps für Profis

  • Verwende Application.CutCopyMode = False nach dem Einfügen, um den Auswahlrahmen um die kopierten Zellen zu entfernen.
  • Erstelle ein benutzerdefiniertes Menü oder eine Schaltfläche in Excel, um das Makro einfacher auszuführen.
  • Teste Deine Makros in einer Kopie Deiner Datei, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nur bestimmte Spalten zu kopieren?
Du kannst die Union-Funktion verwenden, um nur die gewünschten Zellen zu definieren und dann die Formeln von diesen Zellen zu kopieren.

2. Ist es möglich, das Format der neuen Zeile zu übernehmen?
Ja, Du kannst das Format der Zeile mit Selection.Offset(-1).Copy und Selection.PasteSpecial Paste:=xlPasteFormats übernehmen, nachdem Du die Zeile eingefügt hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige