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

Forumthread: Einfügen Leerzeile mit VBA

Einfügen Leerzeile mit VBA
22.08.2007 09:52:58
Reptil
Hallo leute
wieder einmal habe ich ein problem
ich habe eine tabelle, die bei zeile A11 (spaltenbezeichnung) bzw A12 (erster datensatz) anfängt. die länge der tabelle ist unterschiedlich. in spalte B stehen produktnummern. die produktnummern können unterschiedlich oft vorkommen, zb so:
0001
0001
0001
0005
0015
0015
0015
0015
0015
0030
....
wie im beispiel sind auch bei mir die produktnummern sortiert. ich möchte nun nach jedem block von zahlen eine leerzeile einfügen, also quasi so:
0001
0001
0001
0005
0015
0015
....
ich habe hier im archiv dazu folgenden code gefunden:

Option Explicit
Sub Macro1()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If Cells(i, 1)  Cells(i - 1, 1) Then
Rows(i).EntireRow.Insert
Range(Cells(i, 1), Cells(i, 8)).Interior.ColorIndex = 3
End If
Next i
End Sub


doch leider bereitet er mir einige probleme. selbst wenn ich bei range "B65536" angebe, orientiert sich excel an dem, was in der spalte A steht. auch schaffe ich es nciht, das ganze bei B12 stoppen zu lassen.
ich hoffe, ich habe es genau genug geschildert.
fällt euch etwas dazu ein?
danke im voraus,
grüße
das Reptil

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfügen Leerzeile mit VBA
22.08.2007 10:00:03
Chaos
Servus,

Sub Macro1()
Dim i As Long
For i = Range("B65536").End(xlUp).Row To 12 Step -1
If Cells(i, 2)  Cells(i - 1, 2) Then
Rows(i).EntireRow.Insert
Range(Cells(i, 2), Cells(i, 8)).Interior.ColorIndex = 3
End If
Next i
End Sub


Jetzt bezieht sich das Ganze auf Spalte B, aber ich verstehe das trotzdem nicht, weil du sagtest, deine Daten ständen in A.
Gruß
Chaos

Anzeige
AW: Einfügen Leerzeile mit VBA
22.08.2007 10:06:41
Reptil
hallo chaos, danke für deine schnelle hilfe, klappt hervorragend : )
ja, ist mir im nachhinein auch aufgefallen das ich mich undeutlich ausgedrückt habe... die tabelle begint in A, und geht bis G ... nur der schlüsseldatensatz für diese aktion steht eben in B.
grüße, Reptil

Anzeige
was Du aber wissen solltest ... !
22.08.2007 10:44:00
Matthias
Hallo
Was Du aber wissen solltest, wenn Du das Makro ein zweites mal laufen lässt hast Du 2 Leerzeilen zwischen den Blöcken!
bei 3 Durchläufen - 3 Leerzeilen u.s.w.
Hab zwar schon mal versucht zu basteln und es abzufangen, aber es gelingt mir leider noch nicht.
es ist ja noch so früh, gääähn ;-)
Ich wollte Dich nur darauf hinweisen.
Userbild

Anzeige
AW: was Du aber wissen solltest ... !
22.08.2007 12:47:00
Reptil
...genau genommen hab ich beim zweiten durchlauf des makros sogar 3 leerzeilen, da eine leere leerzeile ja auch etwas anderes ist als eine mit irgendwas gefüllte....
das ist aber für meine zwecke absolut ausreichend, da das makro nur einmal durchlaufen werden soll. brauchst dich also wegen mir nicht weiter mit dem problem quälen ;-)
danke aber für deinen hinweis : )
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Leerzeilen in Excel mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um Leerzeilen in Excel mit VBA einzufügen, kannst Du das folgende Makro verwenden. Dieses Makro fügt eine Leerzeile nach jedem Block von gleichen Produktnummern in Spalte B ein.

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

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

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Sub LeerzeilenEinfügen()
       Dim i As Long
       For i = Range("B65536").End(xlUp).Row To 12 Step -1
           If Cells(i, 2).Value <> Cells(i - 1, 2).Value Then
               Rows(i).EntireRow.Insert
               Range(Cells(i, 2), Cells(i, 8)).Interior.ColorIndex = 3
           End If
       Next i
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

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

Dieses Makro wird automatisch Leerzeilen in Excel einfügen, wo sie benötigt werden.


Häufige Fehler und Lösungen

  • Problem: Das Makro fügt nicht die erwarteten Leerzeilen ein.

    • Lösung: Stelle sicher, dass die Daten in Spalte B beginnen und dass Du die richtige Zeile (z.B. 12) als Startpunkt im Code angegeben hast.
  • Problem: Bei mehrmaligem Ausführen des Makros entstehen mehrere Leerzeilen.

    • Lösung: Führe das Makro nur einmal aus, um zu vermeiden, dass zusätzliche Leerzeilen entstehen.

Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du auch die Excel-Funktion "Filtern" benutzen, um die Daten zu gruppieren und anschließend manuell Leerzeilen einzufügen. Eine andere Möglichkeit ist, die Daten nach Spalte B zu sortieren und dann manuell Leerzeilen einzufügen.


Praktische Beispiele

Angenommen, Du hast folgende Daten in Spalte B:

0001
0001
0005
0015
0015

Nach dem Ausführen des VBA-Codes solltest Du folgendes Ergebnis erhalten:

0001

0001

0005

0015

0015

Hierbei wird zwischen den Blöcken von gleichen Produktnummern eine Leerzeile eingefügt.


Tipps für Profis

  • Du kannst die Interior.ColorIndex-Eigenschaft anpassen, um die Hintergrundfarbe der Leerzeilen zu ändern.
  • Überlege, das Makro in eine Schaltfläche einzufügen, um den Prozess zu automatisieren.
  • Teste das Makro immer zuerst in einer Kopie Deiner Excel-Datei, um ungewollte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Spalten verwenden?
Ja, ändere einfach die Zahl in Cells(i, 2) auf die entsprechende Spaltennummer.

2. Was passiert, wenn ich das Makro mehrmals ausführe?
Es werden zusätzliche Leerzeilen eingefügt, da das Makro nicht überprüft, ob bereits eine Leerzeile vorhanden ist. Achte darauf, es nur einmal auszuführen.

3. Ist das Makro in allen Excel-Versionen verfügbar?
Ja, das Makro sollte in allen modernen Versionen von Excel (Excel 2007 und höher) funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige