Wiedrholtes Einfügen von Zeilen

Hi,

ich bin ein absoluter Excel Noob. Ich habe eine importierte Liste die ich in festen Abständen mit zwei Leerzeilen versehen möchte. Leider müsste ich das per Hand ca. 80 Mal machen und das ist ein bischen viel.
Habt ihr denn da eine Idee?

gruß ne0trace

Hallo,

wenn die Frage nur für diese eine Liste bzw. Tabellenblatt besteht:

einmal eine Zeile einfügen
dann zur nächsten Zeile gehen, wo eine Leerzeile eingefügt werden soll und die F4 Taste drücken (Wiederholen des letzten Befehls)

Das ist zwar auch von Hand, geht aber ziemlich schnell.

Gruß

Sabine

Hallo Sabine,

leider macht er dann „insert paste“.
Außerdem muss ich da ja leider immer noch immer die Zellen anklicken. Aber trotzdem danke. Vielleicht liegt es aber auch an meiner Office 2004 Version (Mac OSX)?

Felix

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo ne0trace,

ich bin ein absoluter Excel Noob. Ich habe eine importierte
Liste die ich in festen Abständen mit zwei Leerzeilen versehen
möchte.

leider hast du nicht geschrieben, was das für Abstände sind. Öffne die Excel-Datei, dann Taste ALT+F11, wähle über das Menü: EINFÜGEN, MODUL und füge einen der folgenden Codes ein. Schließe dann das ganze Visual Basic Fenster.

In der Excel Datei wähle jetzt über die Tasten ALT+F8 das entsprechende Makro aus (falls dort viele Makros stehen, wähle weiter unten in dem Fenster bei „Makro in“: Diese Arbeitsmappe) und gehe auf AUSFÜHREN. Bitte probiere es erst an einer Beispieldatei.

Der folgende code fügt nach jeder Zeile zwei Leerzeilen ein

Sub NachEinerZeile\_zweiLeerzeilen\_einfuegen()
Dim shSource As Worksheet
Dim intRowA As Integer
Set shSource = Worksheets("Tabelle1")
intRowA = -1
Do Until IsEmpty(shSource.Cells(intRowA + 2, 1))
 intRowA = intRowA + 3
 shSource.Rows(intRowA).Activate
 Selection.Insert Shift:=xlDown
 Selection.Insert Shift:=xlDown
Loop
End Sub

Dieser Code fügt nach jeweils drei Zeilen zwei Leerzeilen ein.

Sub nachDreiZeilen\_ZweiLeerzeilen\_einfuegen()
Dim shSource As Worksheet
Dim intRowA As Integer
Set shSource = Worksheets("Tabelle1")
intRowA = -1
Do Until IsEmpty(shSource.Cells(intRowA + 2, 1))
 intRowA = intRowA + 5
 shSource.Rows(intRowA).Activate
 Selection.Insert Shift:=xlDown
 Selection.Insert Shift:=xlDown
Loop
End Sub

und dieser Code fügt nach jeweils 6 Zeilen zwei Leerzeilen ein.

Sub nachSechsZeilen\_ZweiLeerzeilen\_einfuegen()
Dim shSource As Worksheet
Dim intRowA As Integer
Set shSource = Worksheets("Tabelle1")
intRowA = -1
Do Until IsEmpty(shSource.Cells(intRowA + 2, 1))
 intRowA = intRowA + 8
 shSource.Rows(intRowA).Activate
 Selection.Insert Shift:=xlDown
 Selection.Insert Shift:=xlDown
Loop
End Sub

An den 3 Beispielen sieht man, was sich in dem code verändert.
Wenn die passende Zeilenzahl nicht dabei ist, ändere den code in der Zeile

intRowA = intRowA + 8

Dabei setzt sich die 8 zusammen aus: n+2, wobei n die Anzahl der Zeilen ist, nach denen die beiden Leerzeilen eingefügt werden sollen.

Gruß
Maria

Vielen Dank für deine Hilfe Maria. Ich habe bereits eine temporäre Lösung mit Subtotals gefunden. Dass hat mich erstmal gerettet…
Aber am WE werde ich mich mal an dein Script ranwagen.

Tausend Dank :wink: