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

Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen

Forumthread: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen

Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
12.01.2026 19:07:25
Sid
Hallo,
habe für eine eigentlich simple Aufgabe noch keine Lösung gefunden.
Löschen von nicht zusammenhängende Zeilen in einem Arbeitsgang.
Beispiel: Zeilenanzahl gesamt: 370000. Gelöscht werden sollen in einem Arbeitsgang die Zeilen: 320, 810, 1470, 32180, 78960, 124050, 248100, 310500...
Gibt es dafür vielleicht schon fertige Scripts oder kann man das auch ohne VBA lösen?
Grüße
Sid
Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
12.01.2026 19:26:10
Uduuh
Hallo,
Woran erkennt man, welche Zeilen gelöscht werden sollen?

Gruß aus'm Pott
Udo
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
14.01.2026 18:48:34
Sid
Hallo,
Es sollen in einem Schritt von 30 bis mehrere Hundert Zeilen gelöscht werden.
Sie variieren natürlich bei jedem neuen Löschvorgang.
Am Einfachsten wäre eine Lösung bei der ich die zu löschenden Zahlen aus einer Spalte eines Excel-Sheets übernehme,
und z.B. in ein Script einfügen kann.
Grüße
Sid
Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
12.01.2026 20:11:24
JoWE
Hallo,
wenn die zu löschenden Zeilen so wie beschrieben feststehen:
Sub DeleteZeilen()
Dim arr
arr = Array(320, 810, 1470, 32180, 78960, 124050, 248100, 310500)
ActiveSheet.Range("A" & Join(arr, ",A")).EntireRow.Delete
End Sub
Gruß
Jochen
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
13.01.2026 14:38:49
JoWE
Zusatz:
Solltest Du es hinbekommen, die zu löschenden Zeilennummern untereinander
z.B. in den Bereich 'E5:Exxx' (xxx steht für eine variable Ganzzahl) zu schreiben, dann könnte das folgende Makro helfen:
Sub DeleteZeilen()

Dim myArray As Variant
Dim myRng As Range
Set myRng = Sheets("Tabelle1").Range("E7:E" & Cells(Rows.Count, 5).End(xlUp).Row) 'myRng enthält die zu löschenden Zeilennummern
myArray = myRng.Value ' Liest alle Werte in das Array
myRng.EntireRow.Delete ' Löscht die Zeilen die im Array aufgelistet sind
End Sub

Gruß
Jochen
Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
14.01.2026 18:58:26
Sid
Hallo,

die Zahlen ändern sich natürlich bei jedem neuen Löschvorgang.
Es sind jedesmal auch unterschiedlich viele (30 bis mehrere Hundert)
Nachdem ich sie aus einer Spalte eines Excel-Sheets kopiert habe, sollten sie sich in das Delete-Script einfügen lassen
(ohne weitere Formatierungen wie z.B. Beistriche setzen usw. - das wäre bei solcher Zeilenanzahl zu langwierig.

Grüße
Sid
Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
14.01.2026 19:06:37
schauan
Hallöchen,
folgende Vorgehensweise:
1)
schreibe in eine ansonsten freie Spalte Deine Zeilennummern, z.B. Spalte X
2)
schreibe z.B. daneben in Y1 diese Formel:
="A" & TEXTVERKETTEN(",A";WAHR;X:X)

(könnte man auch ins folgende Makro einbauen)
3)
führe dieses Makro aus:
Sub Loeschen()

Range(Range("Y1").Value).EntireRow.Delete
End Sub

Anzeige
AW: ... eventuell ...
14.01.2026 20:56:08
schauan
... die Liste der Zeilennummern statt in einer Spalte in Zeile 1 schreiben - oder auf ein extra Blatt - unter Umständen ist Deine Liste vom Löschen betroffen ;-)
AW: ... eventuell ...
15.01.2026 00:58:14
Sid
Hallo,
Danke, funktioniert gut, soweit ich bisher testen konnte.
Etwas irritiert mich aber: Ich habe die Zellen der zu löschenden Zeilen mit Hintergrundfarbe markiert.
Versuch: 30000 Zeilen, 10 zu löschende Zeilennummern.
Bei EINER der verbliebenen 29990 Zeilen wurde die Hintergrundfarbe nicht gelöscht.
Grüße
Sid
Anzeige
AW: ... eventuell ...
15.01.2026 07:07:04
schauan
1)
Hast Du eventuell diese Zeilennummer nicht gelistet? Könnte man testen indem man die Zeilennummern mit in die Zeilen schreibt.
2)
Textverketten hat Limits von 255 Elementen und 8192 Zeichen. Eventuell greift da was, aber da sollte eigentlich ein Fehler kommen.
Schreib mal zum Test in die letzten 3 Zeilen die Zeilennummern... Wenn das so ist müsste man ggf in zwei Schritten löschen.

Anzeige
AW: ... eventuell ...
16.01.2026 02:33:14
Sid
Hallo,

'unter Umständen ist Deine Liste vom Löschen betroffen ' - Nein, laut Syntax nicht
'1) Hast Du eventuell diese Zeilennummer nicht gelistet? Könnte man testen indem man die Zeilennummern mit in die Zeilen schreibt' - Hab' ich getestet
'2) Textverketten hat Limits von 255 Elementen und 8192 Zeichen' - Laut Microsoft soll gerade die Formel TEXTVERKETTEN längere Textwerte möglich machen (MS: Um längere Textwerte in einer Formel zu erstellen, verwenden Sie die Funktion VERKETTEN oder den Verkettungsoperator ( & )
An diesen Dingen liegt's wohl nicht.
Bis 500000 Zeilen ist bei 3 Tests kein Fehler aufgetreten (Zahlenvergleich ohne Hintergrundfarbe)
Teste noch größere Files mit mehr Löschparametern
Grüße
Sid


Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
13.01.2026 15:09:41
daniel
Hi Jochen
wenn du das so schreibst, löschst du Zeilen von myRng, als Tabelle1 ab Zeile 7.

noch ein Hinweis, der Adresstext in der Range-Funktion darf nicht länger als 255 Zeichen sein.
Die Anzahl der Zeilen, die du so in einem Schritt ansprechen kannst, ist begrenzt.

Gruß Daniel
Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
15.01.2026 00:44:25
Sid
Hallo,
Das Löschen funktioniert prima - so gut, dass gleich der gesamte Inhalt der 'Tabelle1' gelöscht wird, inkl. der Vorgaben (die zu löschende Zeilennummern).
In weiteren Versuchen löscht er einfach irgendetwas, aber nie die Vorgaben.
Ich kenne mich in VBA zu wenig aus, um zu verstehen was da falsch läuft, ich habe versucht herauszufinden was die 5 in..(Rows.Count, 5) macht,
oder ob die Range genau die Anzahl der zu löschenden Zahlen abbilden muss (Range("X1:X?" & Cells(Rows.Count, 5)
Veränderung der Parameter haben aber nicht den gewünschten Erfolg gebracht.
Grüße
Sid
Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
15.01.2026 00:59:39
JoWE
hallo und sorry,
das war leider wirklich doof von mir es zu posten ohne selbst ausgiebig zu testen. Und auch Daniel hatte schon darauf hingewiesen.
Ich hoffe Du hast es nicht mit der Originaltabelle getestet.

Gruß Jochen
AW: danke für den erhellenden Hinweis
13.01.2026 17:31:02
JoWE
LG Jochen
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
12.01.2026 20:45:05
daniel
Hi
gibt verschiedene Möglichkeiten.
was und wie hängt auch davon ab, wie viele Zeilen du Löschen willst, wenn es viele sind, obs schnell gehen soll und wie du Information, welche Zeilen gelöscht werden müssen, bereitstellen kannst oder willst.

wenn man in einem Arbeitsgang löschen will, bietet sich das Duplikate-Entfernen an.
dh du markierst zu erst per Formel alle Zeilen, die gelöscht werden sollen, mit der Zahl 0 (Duplikat) und zusätzlich eine Zeile die stehen bleiben muss (am besten die Überschrift) und die Zeilen, die stehen bleiben müssen mit ihrer Zeilennummer (Einzelwert)
dann einfach das Duplikate-Entfernen mit dieser Hilfsspalte als Kriterium auf die Tabelle anwenden

also konkret für dein Beispiel:

schreibe in eine freie Spalte neben der Tabelle mit etwas abstand untereinander die Zeilennummern der zu löschenden Zeilen, und füge auch die Zeilennummer der überschriftenzeile hinzu.
also wenn die Tabelle bis M geht, in die Spalte P oder noch weiter rechts oder in ein zweites Tabellenblatt.

in die erste freie Spalte direkt neben der Tabelle (Spalte N) kommt dann folgende Formel, von der ersten Zeile bis zur letzten (inklusive Überschrift)
=Wenn(ZählenWenns(P:P;Zeile());0;Zeile())

jetzt sollten in Spalte N alle zu löschenden Zeilen mit 0 markiert sein und die anderen mit der Zeilennnummer.
jetzt kanns du die Zeilen mit 0 über das DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN in einem Arbeitsgang löschen.


sollte die Liste mit den zu löschenden Zeilen ebenfalls sehr lang sein, dann schreib sie aufsteigend sortiert in die Spalte P und verwende diese Formel
=Wenn(SVerweis(Zeile();P:P;1;wahr)=Zeile();0;Zeile())


das ist bei langen Listen schneller als Zählenwenns.
Gruß Daniel


Anzeige
AW: Nicht zusammenhängende Zeilen in einem Arbeitsgang löschen
12.01.2026 20:51:52
schauan
... wenn es einen Anhaltspunkt gibt, nachdem man filtern kann, dann Filtern, alles was noch sichtbar ist markieren und löschen ...
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18