Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Leere Zeile einfügen per VBA

Forumthread: Leere Zeile einfügen per VBA

Leere Zeile einfügen per VBA
22.01.2008 08:16:23
christian

halo alle
ich habe ein macro aufgezeichnet das mir in jede 2zeile eine leerzeile einfügt. beginnen ab zeile 2
enden sollte es ca. bei zeile 200
wie kann ich das macro verkürzen?
DERZEITIGE AUFZEICHNUNG:

Sub jede2zeile()
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Rows("4:4").Select
Selection.Insert Shift:=xlDown
Rows("6:6").Select
Selection.Insert Shift:=xlDown
Rows("8:8").Select
Selection.Insert Shift:=xlDown
Rows("10:10").Select
Selection.Insert Shift:=xlDown
Rows("12:12").Select
Selection.Insert Shift:=xlDown
Rows("14:14").Select
Selection.Insert Shift:=xlDown
Rows("16:16").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=9
Rows("18:18").Select
Selection.Insert Shift:=xlDown
Rows("20:20").Select
Selection.Insert Shift:=xlDown
Rows("22:22").Select
Selection.Insert Shift:=xlDown
Rows("24:24").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=6
Rows("26:26").Select
Selection.Insert Shift:=xlDown
Rows("28:28").Select
Selection.Insert Shift:=xlDown
Rows("30:30").Select
Selection.Insert Shift:=xlDown
Rows("32:32").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=9
Rows("34:34").Select
Selection.EntireRow.Hidden = False
Selection.Insert Shift:=xlDown
Rows("36:36").Select
Selection.Insert Shift:=xlDown
Rows("38:38").Select
Selection.Insert Shift:=xlDown
Rows("40:40").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=6
Rows("42:42").Select
Selection.Insert Shift:=xlDown
Rows("44:44").Select
Selection.Insert Shift:=xlDown
Rows("46:46").Select
Selection.Insert Shift:=xlDown
Rows("48:48").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=9
Rows("50:50").Select
Selection.Insert Shift:=xlDown
Rows("52:52").Select
Selection.Insert Shift:=xlDown
Rows("54:54").Select
Selection.Insert Shift:=xlDown
Rows("56:56").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=9
Rows("58:58").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=-75
Range("B1").Select
End Sub


BEISPIEL SO UNGEFÄHR KÖNNTE ES AUSSEHEN:


Sub leerzeilen_einfügen()
ab zeile 2 to 200 then
jede  2 zeile leerzeile einfügen
End Sub


danke
gruss
christian neu

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zeile einfügen per VBA
22.01.2008 08:36:14
Wolli
Moin Christian, so:

Sub test()
Do
ActiveCell.EntireRow.Insert
ActiveCell.Offset(2, 0).Select
Loop Until ActiveCell.Row >= 200
End Sub


Gruß, Wolli

AW: Leere Zeile einfügen per VBA
22.01.2008 08:50:00
christian
hi Wolli
vielen dank im prinzip passt es aber es beginnt schon in der ersten zeile.
also es wird in der ersten zeile schon eine leerzeile eingefügt , es soll aber erst ab zeile 2 eine leerzeile eingefügt werden.,
hast du noch eine idee wie ich das lösen kann?
danke
gruss
christian neu

Anzeige
AW: Leere Zeile einfügen per VBA
22.01.2008 08:57:00
Renee
Hi Christian,
so?:

Sub zwei()
Dim ix As Integer
For ix = 2 To 200 Step 2
ActiveSheet.Cells(ix, 1).EntireRow.Insert
Next ix
End Sub


GreetZ Renée

AW: Leere Zeile einfügen per VBA
22.01.2008 09:07:14
christian
servus Renée
suuuuuuuper vielen dank.

AW: Leere Zeile einfügen per VBA
23.01.2008 21:50:00
Daniel
Hi
wenn du grosse Datenmengen hast und wert auf Geschwindigkeit legst, könntest du auch diesen Code verwenden. Er ist zwar etwas länger, dafür aber um Welten schneller als das Einfügen einzelner Zeilen per Schleife.
(bei 200 Zeilen 12 x schneller, bei 10.000 Zeilen 200 x schneller)

Sub Leerzeilen()
Dim ze As Long
Columns(1).Sort key1:=Cells(1, 1)
ze = Cells(Rows.Count, 1).End(xlUp).Row
Columns(1).Insert
With Cells(1, 1).Resize(ze)
.Formula = "=row()"
.Formula = .Value
.Offset(ze) = .Value
End With
Cells(1, 1).CurrentRegion.Sort , key1:=Cells(2, 1), order1:=xlAscending, header:=xlNo
Columns(1).Delete
End Sub


einen Haken hat die Sache natürlich:
sollten sich Formeln auf diese Tabelle beziehen, dann kannst du diese Methode nicht verwenden, weil beim Sortieren die Zellbezüge nicht angepasst werden.
Da müsstest du dann auf das langsame einfügen zurückgreifen.
Gruß, Daniel

Anzeige
AW: Leere Zeile einfügen per VBA
22.01.2008 09:34:22
Wolli
Naja, es beginnt in der Zeile, in der Du stehst. Man könnte z.B.

Range("A2").select


als 1. Zeile einfügen.
Gruß, Wolli

;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Leere Zeilen in Excel per VBA einfügen


Schritt-für-Schritt-Anleitung

Um leere Zeilen in Excel per VBA einzufügen, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden. Wir konzentrieren uns darauf, eine leere Zeile unterhalb einer bestimmten Zeile einzufügen, beginnend ab Zeile 2 bis Zeile 200.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf „Einfügen“ und wähle „Modul“, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub LeerzeilenEinfügen()
       Dim ix As Integer
       For ix = 2 To 200 Step 2
           ActiveSheet.Cells(ix, 1).EntireRow.Insert
       Next ix
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle „LeerzeilenEinfügen“ aus der Liste und klicke auf „Ausführen“.

Jetzt werden in jeder zweiten Zeile zwischen der 2. und der 200. Zeile leere Zeilen eingefügt. Dies ist eine effektive Methode, um mit dem Excel VBA leere Zeilen einzufügen.


Häufige Fehler und Lösungen

Fehler: Das Makro fügt auch in der ersten Zeile eine leere Zeile ein.
Lösung: Stelle sicher, dass die Schleife bei For ix = 2 To 200 beginnt, um ab Zeile 2 zu arbeiten.

Fehler: Das Makro läuft nicht, weil der VBA-Sicherheitsmodus aktiviert ist.
Lösung: Gehe zu „Datei“ > „Optionen“ > „Trust Center“ und ändere die Einstellungen für Makros.


Alternative Methoden

Wenn du Geschwindigkeit und Effizienz benötigst, könntest du die folgende Methode verwenden, um leere Zeilen einzufügen:

Sub SchnelleLeerzeilen()
    Dim ze As Long
    ze = Cells(Rows.Count, 1).End(xlUp).Row
    Columns(1).Insert
    With Cells(1, 1).Resize(ze)
        .Formula = "=row()"
        .Formula = .Value
        Offset(ze) = .Value
    End With
    Cells(1, 1).CurrentRegion.Sort , key1:=Cells(2, 1), order1:=xlAscending, header:=xlNo
    Columns(1).Delete
End Sub

Diese Methode ist besonders nützlich, wenn du große Datenmengen hast, da sie erheblich schneller ist als die Verwendung von Schleifen.


Praktische Beispiele

Hier sind einige Beispiele, wie du das Excel VBA verwenden kannst, um leere Zeilen einzufügen:

  1. Leere Zeilen nach jeder Zeile einfügen:

    Sub NachJederZeileEinfügen()
       Dim ix As Integer
       For ix = 1 To 200
           ActiveSheet.Cells(ix, 1).EntireRow.Insert
           ix = ix + 1 ' Überspringt die nächste Zeile
       Next ix
    End Sub
  2. Leere Zeilen unterhalb einer bestimmten Zeile einfügen:

    Sub UnterhalbEinfügen()
       ActiveSheet.Rows(3).Insert Shift:=xlDown ' Fügt eine leere Zeile unterhalb von Zeile 3 ein.
    End Sub

Tipps für Profis

  • Verwende Application.ScreenUpdating = False zu Beginn deines Makros, um die Bildschirmaktualisierung während des Vorgangs zu deaktivieren. Das macht dein Makro schneller.

  • Aktiviere die Fehlerbehandlung mit On Error Resume Next, um sicherzustellen, dass das Makro auch bei unerwarteten Problemen weiterläuft.

  • Nutze die VBA-Editor-Umgebung, um den Code schrittweise auszuführen und Fehler zu identifizieren.


FAQ: Häufige Fragen

1. Wie füge ich eine leere Zeile über einer bestimmten Zeile ein?
Verwende den Befehl ActiveSheet.Rows(2).Insert Shift:=xlDown, um eine leere Zeile oberhalb der zweiten Zeile einzufügen.

2. Kann ich das Makro anpassen, um mehr als 200 Zeilen zu bearbeiten?
Ja, ändere einfach die 200 in der Schleife auf die gewünschte Zeilenzahl, z.B. For ix = 2 To 500 Step 2.

3. Wie kann ich das Makro auf eine bestimmte Tabelle anwenden?
Füge den Tabellennamen im Code hinzu, z.B. Worksheets("Tabelle1").Cells(ix, 1).EntireRow.Insert.

Mit diesen Anleitungen und Tipps kannst du effektiv leere Zeilen in Excel mithilfe von VBA einfügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige