Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1380to1384
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

95 Leerzeilen per Makro einfügen

95 Leerzeilen per Makro einfügen
16.09.2014 19:33:21
Steve
Hallo!
Die Frage ist sicher trivial, aber wie kann ich denn per Makro 95 Leerzeilen unter meiner aktiven Auswahl einfügen?
Das heißt es sind 100 Zeilen gefüllt in Spalte A. Der Cursor steht auf A1 und durch starten des Makros soll der Inhalt von A2 durch einfügen von leeren Zeilen anschließend auf A97 stehen. Das ganze soll bis zum letzten Eintrag in Spalte A durchgeführt, quasi bis kein Inhalt mehr in der Zelle steht unter der man noch 95 Leerzeilen einfügen könnte.
Hab zwar schon etwas rumprobiert aber so richtig erfolgreich war ich bisher nicht.
Vielleicht kann mir jemand etwas auf die Sprünge helfen? Vielen Dank im voraus.
Beste Grüße,
Steve

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 95 Leerzeilen per Makro einfügen
16.09.2014 20:14:02
Daniel
Hi
würde ich so machen (erstmal das Procedere von Hand)
1. in einer Hilfsspalte am Ende der Daten die Zeilennummer eintragen
2. diese Zeilennummern kopieren und am Datenende 95x einfügen
3. die ganze Tabelle nach dieser Hilfsspalte sortieren und die Hilfsspalte wieder löschen.
sieht als Code in etwas so aus:
Sub test()
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.Formula = "=Row()"
.Copy
With .Resize(.Rows.Count * (95 + 1))
.PasteSpecial xlPasteValues
.EntireRow.Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlNo
.ClearContents
End With
End With
End With
End Sub
Das ist meine bevorzugte Methode, weil Excel beim Einfügen von Zeilen relativ langsam ist, beim Sortieren jedoch sehr schnell
gruß Daniel

Anzeige
AW: 95 Leerzeilen per Makro einfügen
17.09.2014 13:36:21
Adis
Hallo Daniel
ich habe dein Programm ausprobiert, weil es mir am Anfang nicht ganz klar war.
Verdammt clever, Hut ab ... (so langsam gehen mir die Hüte aus)
Gruss Adis

AW: 95 Leerzeilen per Makro einfügen
17.09.2014 14:03:23
Daniel
HI
eigentlich ists ganz einfach.
Man verwendet auch in VBA die Methode, mit der es von Hand ohne VBA am einfachsten und schnellsten geht.
Die VBA-Lösung wird dann auch "unkompliziert":
keine Variablen, keine Schleifen, keine Bedingung.
Gruß Daniel

AW: 95 Leerzeilen per Makro einfügen
16.09.2014 20:56:41
Matthias
Hallo
Markiere A2
Sub newRow()
For x = 1 To 95
Rows(ActiveCell.Row).Insert Shift:=xlDown
Next
End Sub
Gruß Matthias

Anzeige
AW: 95 Leerzeilen per Makro einfügen
16.09.2014 21:35:33
Gerd
Guten Abend, Steve!
Sub c()
Dim lngRow As Long
For lngRow = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
Rows(lngRow & ":" & lngRow + 94).Insert shift:=xlShiftDown
Next
End Sub
Gruß Gerd

AW: 95 Leerzeilen per Makro einfügen
17.09.2014 00:05:36
Adis
Hallo
Sorry, obwohl ich als Programmierer im Forum -sehr umstritten bin- verweise ich auf Excel 7 !!
Wofür braucht ihr die For Next Schleifen? Das habe ich schon vor 17 Jahren einfacher gemacht!
Range("A2:A96").Insert Shift:=xlDown
Gruss Adis

AW: 95 Leerzeilen per Makro einfügen
17.09.2014 00:34:02
Daniel
Hi Aids
Du hast da übersehen, dass die Leerzeilen nicht nur zwischen A1 und A2, sondern auch zwischen A2 und, A3, A3 und A4, A4 und A5 eingefügt werden sollen und dafür ist die Schleife.
95 Zeilen auf einmal einfügen macht Gerd ja schon.
Einem wirklich Schleifenfreie Variante (zumindest was den VBA-Code angeht), siehst du bei mir.
Gruß Daniel

Anzeige
AW: 95 Leerzeilen per Makro einfügen
17.09.2014 08:27:44
Steve
Vielen Dank an alle.
Hab mich jetzt für die Variante von Daniel entschieden, geht ja echt richtig fix die ganze Prozedur. So eine effiziente Abarbeitung hatte ich gar nicht erwartet :D

AW: 95 Leerzeilen per Makro einfügen
17.09.2014 12:49:55
Steve
So jetzt ist mir doch noch was aufgefallen.
Wenn ich den Code von Daniel nehme und Spalte A bis F jeweils gefüllt sind dann funktioniert es nicht mehr.
Er bricht in dieser Zeile mit Laufzeitfehler 1004 (Anwendungs- oder objektorientierter Fehler) ab:
With .Resize(.Rows.Count * (95 + 1))

AW: 95 Leerzeilen per Makro einfügen
17.09.2014 13:02:32
Daniel
Hi
dann hast du nicht nur die Spalten A-F gefüllt, sondern auch noch was anderes gemacht.
bei mir funktioniert der Code, egal wieviel Spalten gefüllt sind.
Es muss halt genügend Platz unterhalb der Tabelle sein, damit die Zeilen eingefügt werden können.
Sollte deine Usedrange nicht zum Inhalt passen (bspw weil du ganze Spalten formatiert hast) dann vielleicht so:
With ActiveSheet.Cells(1, 1).CurrentRegion
das orientiert sich beim Ermitteln der Tabellengrösse nur am Inhalt, allerdings darf dann die Tabelle keine Leerzeilen oder Leerzellen zwischen drin enthalten.
also wie gesagt, am Code so wie ich ihn gezeigt habe, liegt der Fehler nicht.
Bitte zeige, ob du änderungen am Code vorgenommen hast oder wie deine Datei aussieht.
Gruß Daniel

Anzeige
AW: 95 Leerzeilen per Makro einfügen
17.09.2014 14:03:41
Steve
Also hab jetzt einfach nochmal ne neue Datei erstellt und nun geht es wieder :/ Keine Ahnung warum das nicht mehr ging.

AW: 95 Leerzeilen per Makro einfügen
17.09.2014 20:41:16
Adis
Hallo
bei eurer Diskussion ist mir etwas aufgefallen, was auch mir beim Testen Probleme bereitet hat.
Der -UsedRange.CurrentRegion- Befehl hat seine Tücken, wenn man Daniels Makro wiederholt!
Dann hat Excel sich -intern gemerkt- das UsedRange inzwischen auf Zeile 9354 steht.
Löscht man die Werte und wiederholt das Makro fliegt man auf die Nase, geht nicht!
Man muss wirklich die Zeilen ab 96 bis zum Ende löschen, -und die Datei schliessen- !!
Erst beim Neustart erkennt Excel wieder den alten Zustand bis Zeile 96 als UsedRange.
Dasd Problem mit Laufzeitfehler hatte ich auch. Nach 17 Jahren Excel weiss man warum!
Gruss Adis

Anzeige
AW: 95 Leerzeilen per Makro einfügen
17.09.2014 20:50:36
Daniel
Warum sollte man auch im Normalbetrieb das Marko mit derselben Datei wiederholen wollen?
Wer fügt schon Zeilen ein, nur um sie wieder zu löschen?
Man kann natürlich auch andere Methoden verwenden um die letzte Zeile zu verwenden, aber durch die Verwendung der Usedrange bin ich mir sicher, dass ich mit meiner Hilfsspalte keine vorhandenen Daten überschreibe und das ist, wenn ich Makros für mir unbekannte Dateien schreibe, nicht unwichtig.
Gruß Daniel

AW: 95 Leerzeilen per Makro einfügen
17.09.2014 22:18:39
Adis
Hallo
ich hatte dein Programm getestet, gesehen das es wundervoll klappt, aber nicht sofort
begriffen wie es funktionierte. Also löschte ich die Zeilen und wiederholte das Makro.
Es ist meine Gewohnheit mir zum lernen fremde Makros anzuschauen bis ich sie kapiere.
Dann allerdings schlaegt das -innere Wissen- von Excel zu. Er merkt sich ja den neuen
UsedRange sofort. Daran hatte ich nicht gedacht und lief in den Laufzeitfehler.
Gruss Adis

Anzeige
AW: 95 Leerzeilen per Makro einfügen
18.09.2014 00:11:35
Daniel
HI
das hängt immer davon ab, wie du löscht.
ich habe jetzt mal getestet und die leerzeilen zwischen den Werten mit der Option "Ganze Zeile" gelöscht, dann kann zieht Excel die Usedrange mit und man kann den Code problemlos mehrfach hintereinander ausführen, ohne das es zum Fehler kommt.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige