Supportnet / Forum / Tabellenkalkulation
Excel - leere Zeilen einfügen
Frage
Hi
folgendes Problem: ich muss eine Excel-Tabelle mit Telefonnummern und Adressen der Kunden überarbeiten. Diese Liste besteht aus rund 1800 Zeilen. Zur besseren Übersicht soll nun zwischen jeder Zeile eine freizeile eingefügt werden. Es soll also jede 2. Zeile frei sein. Gibts eine Option mit der man sowas hinkriegen kann? Alles manuell einzufügen wäre doch etwas viel Arbeit.
Antwort 1 von Pegasos33
Hi Seemandelbaum
Unter der ersten Zeile fügst Du eine neue Zeile ein.
Dann markierst Du beide Zeilen, also die erste mit den Telefonnummern und die leere neu eingefügte.
In dem markiertem Bereich siehst du dann in der unteren rechten Ecke eine etwas dickeren Punkt.
Wenn Du jetzt mit dem Mauszeiger drüber fährst wird aus dem Pfeil eine Kreuz.
In diesem Zustand kannst du dann mit gedrückter linker Maustaste die Markierung bis zu letzen Zeile ziehen.
Nun solltest Du zwischen jeder Zeile eine Leerzeile haben
ACHTUNG !!!ACHTUNG !!!ACHTUNG !!!ACHTUNG !!!
Vorher die Datei sichern.
Gruß
P.
Unter der ersten Zeile fügst Du eine neue Zeile ein.
Dann markierst Du beide Zeilen, also die erste mit den Telefonnummern und die leere neu eingefügte.
In dem markiertem Bereich siehst du dann in der unteren rechten Ecke eine etwas dickeren Punkt.
Wenn Du jetzt mit dem Mauszeiger drüber fährst wird aus dem Pfeil eine Kreuz.
In diesem Zustand kannst du dann mit gedrückter linker Maustaste die Markierung bis zu letzen Zeile ziehen.
Nun solltest Du zwischen jeder Zeile eine Leerzeile haben
ACHTUNG !!!ACHTUNG !!!ACHTUNG !!!ACHTUNG !!!
Vorher die Datei sichern.
Gruß
P.
Antwort 2 von Primut
Hi Seemandelbaum,
dazu gibt es ja Makros, um die aufwendige Handarbeit
zu erleichtern!
Du brauchst natürlich die genaue Anzahl der Datenzeilen, in meinem Beispiel-Code waren es nur 20, angefangen bei 10! Bei i = X gibst du die Zeilennummer der zweiten Daten-Zeile ein, und bei To Y gibst du deine gesamte
Datenzahl*2 + X an, da nur jede zweite Zeile gezält wird.
Über Alt + F11 kommst du in die Makro-Programmierumgebung, und unter Einfügen / Modul
erhälst du ein freies Arbeitsblatt, wo dieser Code
einzutragen ist.
Wenn du die Anfangs - und Endzeilennummern richtig eingegeben hast, solllte alles funzen!
Zur Sicherheit: Daten sichern, denn Makros lassen sich nicht rückgängig machen. Wie sich das Makro aufrufen läßt, sollte ja bekannt sein.
Gruß
Primut
dazu gibt es ja Makros, um die aufwendige Handarbeit
zu erleichtern!
Sub Leerzeile_einfügen()
For i = 11 To 51 Step 2
Rows(i).Select
Selection.Insert
Next i
End Sub
Du brauchst natürlich die genaue Anzahl der Datenzeilen, in meinem Beispiel-Code waren es nur 20, angefangen bei 10! Bei i = X gibst du die Zeilennummer der zweiten Daten-Zeile ein, und bei To Y gibst du deine gesamte
Datenzahl*2 + X an, da nur jede zweite Zeile gezält wird.
Über Alt + F11 kommst du in die Makro-Programmierumgebung, und unter Einfügen / Modul
erhälst du ein freies Arbeitsblatt, wo dieser Code
einzutragen ist.
Wenn du die Anfangs - und Endzeilennummern richtig eingegeben hast, solllte alles funzen!
Zur Sicherheit: Daten sichern, denn Makros lassen sich nicht rückgängig machen. Wie sich das Makro aufrufen läßt, sollte ja bekannt sein.
Gruß
Primut
Antwort 3 von Event
Vielleicht wird die bessere Übersichtlichkeit ja auch bereits durch vergrößern der Zeilenhöhe erreicht ??
Gruß
Gruß
Antwort 4 von StefanPE
Hallo Seemandelbaum,
hatte gerade letzte Woche ein ähnliches Problem. Hier ist meine Lösung:
Sub Leerzeilen()
Set wksTemp = ActiveSheet
Menge = wksTemp.UsedRange.Rows.Count
For i = Menge To 6 Step -1
Menge1 = i & ":" & i
Rows(Menge1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
Das Ganze hat den Vorteil, daß es selbst die Anzahl der Zeilen ermittelt und dann von unten nach oben arbeitet...Über die Zahl in der For-Anweisung (hier 6) gibst du die Anzahl der Überschriftenzeilen an (wo ja normalerweise keine Leerzeilen reingehören). In meinem Beispiel stand der erste Datensatz in Zeile 5, deshalb steht hier die 6. So wird unterhalb der Zeile 5 die erste Leerzeile eingebaut. Habe das Ding eben nochmal mit ´ner Beispieltabelle mit 8500 Zeilen getestet...hat fast zwei Minuten grödelt, aber dabei schön getan was es sollte...;-).
Trotzdem, erstmal Datenbestand sichern, dann ausprobieren....
Gruß aus Peine
Stefan
hatte gerade letzte Woche ein ähnliches Problem. Hier ist meine Lösung:
Sub Leerzeilen()
Set wksTemp = ActiveSheet
Menge = wksTemp.UsedRange.Rows.Count
For i = Menge To 6 Step -1
Menge1 = i & ":" & i
Rows(Menge1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
Das Ganze hat den Vorteil, daß es selbst die Anzahl der Zeilen ermittelt und dann von unten nach oben arbeitet...Über die Zahl in der For-Anweisung (hier 6) gibst du die Anzahl der Überschriftenzeilen an (wo ja normalerweise keine Leerzeilen reingehören). In meinem Beispiel stand der erste Datensatz in Zeile 5, deshalb steht hier die 6. So wird unterhalb der Zeile 5 die erste Leerzeile eingebaut. Habe das Ding eben nochmal mit ´ner Beispieltabelle mit 8500 Zeilen getestet...hat fast zwei Minuten grödelt, aber dabei schön getan was es sollte...;-).
Trotzdem, erstmal Datenbestand sichern, dann ausprobieren....
Gruß aus Peine
Stefan
Antwort 5 von Primut
@Stefan,
hey, coole Idee, Zeilen zählen lassen und Rückwärts
Leerzeilen einfügen. Damit erübrigt sich mein notwendiger Zweier-Sprung.
Übrigens, Shift:=xlDown kann man sich sparen und
statt Menge1 einfach
funzt auch und sieht noch eleganter aus...
beste Grüße
Primut
hey, coole Idee, Zeilen zählen lassen und Rückwärts
Leerzeilen einfügen. Damit erübrigt sich mein notwendiger Zweier-Sprung.
Übrigens, Shift:=xlDown kann man sich sparen und
statt Menge1 einfach
Rows(i).Select
setzten, funzt auch und sieht noch eleganter aus...
beste Grüße
Primut
Antwort 6 von StefanPE
Hallo,
ich habe das Ding noch ein bißchen komfortabler gemacht....;-)...:
Sub Leerzeilen()
Set wksTemp = ActiveSheet
Menge = wksTemp.UsedRange.Rows.Count
Titel = InputBox("Wie viele Zeilen ist die Überschrift hoch?")
For i = Menge To Titel + 2 Step -1
Menge1 = i & ":" & i
Rows(Menge1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
Jetzt kommt beim Start ´ne Abfrage nach den Überschriftenzeilen...nur mal so....
Gruß
Stefan
ich habe das Ding noch ein bißchen komfortabler gemacht....;-)...:
Sub Leerzeilen()
Set wksTemp = ActiveSheet
Menge = wksTemp.UsedRange.Rows.Count
Titel = InputBox("Wie viele Zeilen ist die Überschrift hoch?")
For i = Menge To Titel + 2 Step -1
Menge1 = i & ":" & i
Rows(Menge1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
Jetzt kommt beim Start ´ne Abfrage nach den Überschriftenzeilen...nur mal so....
Gruß
Stefan
Antwort 7 von StefanPE
@primut
Die Idee mit dem Zweiersprung hatte ich auch zuerst...aber als ich dann merkte, daß die Zeilenanzahl damit immer weiter wegläuft war mir die Rechnerei vorher zu aufwändig...vor allem, weil das Makro aus einem anderen Programm heraus mit unterschiedlichen Tabellen laufen sollte...und von unten nach oben funzt immer...;-)
Deine beiden Anmerkungen muß ich gleich mal testen
Gruß
Stefan
Die Idee mit dem Zweiersprung hatte ich auch zuerst...aber als ich dann merkte, daß die Zeilenanzahl damit immer weiter wegläuft war mir die Rechnerei vorher zu aufwändig...vor allem, weil das Makro aus einem anderen Programm heraus mit unterschiedlichen Tabellen laufen sollte...und von unten nach oben funzt immer...;-)
Deine beiden Anmerkungen muß ich gleich mal testen
Gruß
Stefan
Antwort 8 von Seemandelbaum
danke erstmal für die Antworten.
die Methode von Pegasos klingt ganz gut, aber leider übernimmt der jedesmal die Werte der markierten Zeilen, weswegen das nich wirklich hinhaut.
Ich habs jetzt heute erst mal noch manuell gemacht (bin bei etwa Zeile 500). das mit den Makros werde ich dann mal am Donnerstag ausprobieren, wenn ich dis dann über´s WE zu Hause beenden werde, auch wenns mit den Makros wohl nur wenige Minuten dauert *g*. werde ich ja dann sehn.
die Methode von Pegasos klingt ganz gut, aber leider übernimmt der jedesmal die Werte der markierten Zeilen, weswegen das nich wirklich hinhaut.
Ich habs jetzt heute erst mal noch manuell gemacht (bin bei etwa Zeile 500). das mit den Makros werde ich dann mal am Donnerstag ausprobieren, wenn ich dis dann über´s WE zu Hause beenden werde, auch wenns mit den Makros wohl nur wenige Minuten dauert *g*. werde ich ja dann sehn.