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

VBA Leere Zeile einfügen

VBA Leere Zeile einfügen
22.08.2019 10:16:39
Christina
Hallo zusammen,
bis jetzt war ich immer nur stille Leserin und habe aus den ganzen Einträgen schon super viel lernen können - danke dafür! :)
Nun verzweifle ich jedoch im Rahmen meiner Masterarbeit und wäre super dankbar, wenn ihr mir weiterhelfen könntet.
Und zwar habe ich eine sehr große Datenmenge (über 600.000 Zeilen) und ich möchte jedes Mal, wenn ein Datum in Spalte D steht, eine leere Zeile dadrüber einfügen. Ich hatte das bei vorherigen Datensätzen mit diesem Code gemacht (das hatte einwandfrei funktioniert), den ich auch hier irgendwo gefunden hatte:
Sub LeereZeile()
Dim i As Long
i = 616000
For i = 616000 To 2 Step -1
If Cells(i, 4)  "" Then Rows(i).Insert Shift:=xlUp
Next i
End Sub
Leider rödelt Excel erst ewig lang und dann kommt die folgende Meldung:
Laufzeitfehler '1004': Die Insert-Methode des Range-Objektes konnte nicht ausgeführt werden.
Wenn ich dann einen Blick in die Daten werfe, dann hat er den Code in den untersten Zeilen erfolgreich ausgeführt und dann abgebrochen, obwohl dort nichts anders war.
Um jeden Ratschlag, wie man das beheben könnte, bin ich sehr dankbar!! :)
Liebe Grüße
Christina

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Leere Zeile einfügen
22.08.2019 15:20:29
onur
Sind denn Filter oder Blattschutz für einige Zellen gesetzt?
AW: VBA Leere Zeile einfügen
22.08.2019 15:33:08
Daniel
HI
das ist für solche Datenmengen untauglich.
der schnellere und einfachere Weg ist, die Leerzeilen einzusorteren.
1. schreibe in eine Hilfsspalte am Tabellenende (z.B.Spalte X) die Zeilennummer
hierzu trägst du dann in die erste Zelle die 1 ein, klickst diese an und wählst im Menü:
Start - Bearbeiten - Füllbereich - Reihe und gibst im Assistenten ein:
Spalten; Linear, Inkrement: 1, Endwert: die Nummer der letzten benutzen Zeile
2. in die Zweite Hilfsspalte (Y) kommt folgende Formel:
=Wenn(IstZahl(D1);Zeile()-0,1;"")
diese Formel kopierst du dann nach unten, soweit wie benötigt (Doppelklick auf die rechte unter Ecke)
3. Spalte Y kopieren und an gleicher stelle als Wert einfügen
4. markiere die Spalte Y und schränke die Auswahl auf die Zellen mit Zahl ein
(Funktiostaste F5 - Inhalte - Konstanten - Zahlen)
5. markiere diese Auswahl und füge sie unterhalb der Spalte X ein.
6. sortiere das ganze nach Spalte X
7. lösche Spalte X und Y
das ist bei der Datenmenge der schnellste Weg, Leerzeilen an bestimmten Stellen einzufügen.
machs erstmal von hand, wenn du es öfterst brauchst, kann man das immer noch in ein Makro umschreiben.
(wobei das so schnell geht, das man das auch ein paar mal von Hand machen kann)
Gruß Daniel
Anzeige

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige