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

Forumthread: Per VBA Zeile einfügen

Per VBA Zeile einfügen
07.04.2017 11:46:37
ExcelDirk
Wertes Forum,
mit
ActiveSheet.Rows("6:6").Select
ActiveSheet.Rows("6:6").Copy
ActiveSheet.Rows("5:5").Insert Shift:=xlDown
Application.CutCopyMode = False
füge ich eine Zeile ein. Klappt!
Ich lege einen Blattschutz auf die Datei: Klappt nicht mehr, Meldung:
'Die INsert-Methode des Range-Objektes konnte nicht ausgeführt werden."
Was wäre die Alternative?
Sänk jiu!
Grüssle
Dirk
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Zeile einfügen
07.04.2017 11:53:30
Matthias
Hallo
ActiveSheet.Unprotect
Rows(6).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Protect
Gruß Matthias
AW: Per VBA Zeile einfügen
07.04.2017 11:56:16
Matthias
Hallo
, CopyOrigin:=xlFormatFromLeftOrAbove
kannst Du auch weglassen.
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um eine Zeile in Excel mithilfe von VBA einzufügen, kannst Du den folgenden Code verwenden:

ActiveSheet.Rows("6:6").Insert Shift:=xlDown

Dieser Befehl fügt eine neue Zeile oberhalb der Zeile 6 ein. Beachte, dass Du zuvor den Blattschutz eventuell deaktivieren musst, um die Zeile erfolgreich einzufügen. Hier ist der vollständige Ablauf:

  1. Blattschutz aufheben:

    ActiveSheet.Unprotect
  2. Neue Zeile einfügen:

    ActiveSheet.Rows("6:6").Insert Shift:=xlDown
  3. Blattschutz wieder aktivieren:

    ActiveSheet.Protect

Du kannst auch CopyOrigin:=xlFormatFromLeftOrAbove hinzufügen, um die Formatierung der neuen Zeile anzupassen, dies ist jedoch optional.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist die Meldung:

'Die Insert-Methode des Range-Objektes konnte nicht ausgeführt werden.'

Dieser Fehler tritt auf, wenn der Blattschutz aktiv ist. Um dies zu vermeiden, stelle sicher, dass Du den Blattschutz vor dem Einfügen der Zeile aufhebst.


Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch die folgende Methode in Excel nutzen:

  1. Wähle die Zeile aus, oberhalb der Du eine neue Zeile einfügen möchtest.
  2. Klicke mit der rechten Maustaste und wähle „Zeile einfügen“ aus dem Kontextmenü.

Diese Methode ist einfach, erfordert jedoch manuelle Eingriffe und ist nicht automatisierbar wie mit VBA.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Einfügen von Zeilen in Excel mit VBA:

  • Einfügen einer neuen Zeile unterhalb einer bestimmten Zeile:

    ActiveSheet.Rows("7:7").Insert Shift:=xlDown
  • Einfügen mehrerer Zeilen:

    ActiveSheet.Rows("5:7").Insert Shift:=xlDown
  • Einfügen einer neuen Zeile nur, wenn eine Bedingung erfüllt ist:

    If Cells(5, 1).Value = "" Then
       ActiveSheet.Rows("6:6").Insert Shift:=xlDown
    End If

Tipps für Profis

  • Nutze Schleifen, um mehrere Zeilen automatisch einzufügen, falls Du mit großen Datenmengen arbeitest.

  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren, was die Geschwindigkeit erhöhen kann.

  • Teste Deine Makros in einer Kopie Deiner Datei, um unerwünschte Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich eine Zeile einfügen, ohne den Blattschutz aufzuheben? Es ist nicht möglich, eine Zeile einzufügen, während der Blattschutz aktiv ist. Du musst den Schutz vorübergehend aufheben.

2. Kann ich eine Zeile unterhalb einer bestimmten Zeile einfügen? Ja, das kannst Du tun, indem Du den Befehl wie folgt anpasst:

ActiveSheet.Rows("7:7").Insert Shift:=xlDown

3. Wie füge ich mehrere Zeilen auf einmal ein? Du kannst mehrere Zeilen mit folgendem Befehl einfügen:

ActiveSheet.Rows("5:7").Insert Shift:=xlDown

4. Gibt es eine Möglichkeit, die Formatierung der neuen Zeile zu übernehmen? Ja, Du kannst den CopyOrigin Parameter verwenden:

ActiveSheet.Rows("6:6").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige