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

Zeilen einfügen

Forumthread: Zeilen einfügen

Zeilen einfügen
04.04.2025 11:26:42
Thomas23
Guten Tag,

ich suche nach einer Möglichkeit meine Arbeit ein bisschen zu erleichtern.
Für eine Berechnung muss ich aus Formatierungsgründen immer 4 Leerzeilen einfügen und zwar wie auf dem Bild im Anhang zu sehen über "Personalnummer" Spalte B.
Da es über 4000 Zeilen sind, ist das natürlich sehr aufwendig.
Im Bild zu sehen (unter dem pinken Strich) ist eine gefilterte Ansicht. Zwischen den Zeilen Personalnummer / Name... ist eine unterschiedliche Anzahl an Zeilen mit Daten.
Gibt es eine Möglichkeit das schneller zu lösen als mit "neuer Zeile einfügen" bzw den Shotcut dafür? Also zb. mit einen Makro?


Userbild


Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen einfügen
04.04.2025 11:43:22
MCO
Moin!

Das sieht dann wohl so aus:

Sub Zeilen_einfügen()


For cl = Range("B" & Rows.Count).End(xlUp).Row To 2 Step -1
If cl > "" Then
Rows(cl).Insert
Rows(cl).Insert
Rows(cl).Insert
Rows(cl).Insert
End If
Next cl
End Sub

Du kannst natürlich die 4 einzelnen Zeilen auch noch in eine Schleife packen:
Sub Zeilen_einfügen()

For cl = Range("B" & Rows.Count).End(xlUp).Row To 2 Step -1
If cl > "" Then
For Z = 1 To 4
Rows(cl).Insert
Next Z
End If
Next cl
End Sub


oder noch besser, in einem Schritt 4 Zeilen einfügen:
Sub Zeilen_einfügen()


For cl = Range("B" & Rows.Count).End(xlUp).Row To 2 Step -1
If cl > "" Then Rows(cl & ":" & cl + 3).Insert
Next cl
End Sub


Gruß, MCO
Anzeige
AW: Zeilen einfügen
04.04.2025 14:28:44
Thomas23
Hallo MCO, dein Makro habe ich mir angeschaut und ausprobiert.
Es macht mir 4 Leerzeilen, allerdings nach jede Zeile die leer ist. (Bild 1)
Kann man das Makro auch so umschreiben, dass man ausschließlich nur vor der Zeile mit Personalnummer diese 4 Leerzeilen einfügt.
so wie im Bild 2.

Bild 1
Userbild


Bild 2
Userbild
Anzeige
AW: Zeilen einfügen
04.04.2025 14:40:49
MCO
Hey,

klar.
Tausche das
If cl > "" Then

in
If instr(cl,"Personalnummer")>0 Then


Fertig.
Gruß, MCO
AW: Zeilen einfügen
04.04.2025 16:37:28
Thomas23
hmm funktioniert bei mir leider nicht. kannst du nochmal schauen MCO?

Sub Zeilen_einfügen()


For cl = Range("B" & Rows.Count).End(xlUp).Row To 2 Step -1
If InStr(cl, "Personalnummer") > 0 Then Rows(cl & ":" & cl + 3).Insert
Next cl
End Sub
Anzeige
AW: Zeilen einfügen
04.04.2025 16:46:34
daniel
Hi
das cl ist hier nur die Zeilennummer.
MCO hat bei der Erstellung des Codes eine Objektschleife im Kopf gehabt, bei der wäre cl dann die Zelle selbst, hier ist es aber nur eine Nummer.
daher musst du noch den Zellwert ermitteln
If instr(Cells(cl, 2).value,"Personalnummer")>0 Then

Gruß Daniel
Anzeige
AW: Zeilen einfügen
04.04.2025 17:28:13
Thomas23
Hey, danke funktioniert. Das wird mir in Zukunft wohl deutlich helfen!
AW: Zeilen einfügen
04.04.2025 12:17:12
daniel
Hi
ohne Formel so:
1. mach eine Hilfsspalte (bspw Spalte X) und trage dort die Zeilennummer ein (=Zeile() oder 1 und 2 in die ersten beiden Zellen eintragen, dann nach unten ziehen). wenn du =Zeile() machst, kopieren und als Wert einfügen

2. mach eine zweite Hilfsspalte Y mit dieser Formel und ziehe die Formel nach unten:
=Wenn(B1="Personalnummer";X1-0,1;"")
diese Spalte auch wieder kopieren und als Wert einfügen.

3. markiere die Spalte Y und schränke die Markierung auf die Zellen mit Zahl ein (im Menü START - BEARBEITEN - SUCHEN UND AUSWÄHLEN - INHALTE - KONSTANTEN - ZAHLEN

4. kopiere die so markierten Zellen und füge sie unterhalb der Spalte X wieder ein.
wiederhole das Einfügen am Ende von X so oft, wie du Leerzeilen benötigst

5. sortiere jetzt die ganze Liste nach der Spalte Y

6. Lösche Spalte X und Y

Gruß Daniel
Anzeige
AW: Zeilen einfügen
04.04.2025 12:28:17
daniel
Hi
geht auch etwas einfacher mit neuem Excel, weil man einen Teil des manuellen Aufwandes per Formel erledigen kann:

1. Trage in die erste freie Spalte am Tabellende diese Formel in die erste Zeile ein, die Anzahl der c beim Vstapeln bestimmt die Anzahl der Leerzeilen, der Zellbereich B1:B30 muss natürlich an deine Datenmenge angepasst werden.
=LET(a;B1:B30;b;ZEILE(a);c;FILTER(b-0,1;a="Personalnummer");VSTAPELN(b;c;c;c;c))

2. kopiere die Hilfsspalte und füge als WERT ein
3. sortiere die Liste nach der Hilfspalte
4. lösche die Hilfsspalte
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige