Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
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

Zellebreiche löschen und das möglichst schnell

Zellebreiche löschen und das möglichst schnell
14.10.2019 14:49:35
HPG
Hallo zusammen,
auch wenn mir dieses Forum auch schon beim passiven Mitlesen bereits eine Menge geholfen hat, komme ich jetzt doch nicht mehr ohne konkretes Nachfragen weiter.
Ich möchte aus einer laaangen Liste von Messwerten Zellbereiche löschen, wenn in einer Spalte keine Werte stehen. Dafür habe ich mir ertsmal eine Hilfsspalte gebastelt, die mir dann das Kriterium liefert, nacg dem ich löschen möchte. Mein Code sieht bisher so aus:
Userbild
Er funktioniert auch soweit, nur wird alles sehr, sehr langsam, wenn tatsächlich alle Daten, die ich bearbeiten möchte, in der Tabelle stehen (mehrere zehntausend Zeilen).
Es wäre toll, wenn irgendwer noch eine zündende Idee hat, wie man das hinbekommt. Ich hab auch schon den Tip ausprobiert, es über "Duplikate löschen" zu versuchen, aber dann löscht es mir alles außer der ersten und letzten Zeile.
Vielen Dank und schönen Gruß

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 15:00:01
Werner
Hallo,
warum stellst du den Code als Bild hier ein? soll den jemand abtippen?
Stell doch mal eine Beispielmappe ein, mit ein paar Beispieldaten.
Würde ich mit RemoveDuplicates machen.
Gruß Werner
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 15:05:10
Daniel
Hi
das schnelle löschen von Zeilen mit Bedingung geht tatsächlich am besten mit dem Duplikate-Entfernen, allerdings nach diesem Schema
1. die erste Zeile muss eine Überschriftenzeile sein
2. kennzeichne in einer Hilfsspalte alle Zeilen, die gelöscht werden müssen per Formel mit der Zahl 0, und alle Zeilen die stehen bleiben müssen mit der aktuellen Zeilennummer
3. schreibe in die Überschriftenzeile der Hilfsspalte die 0
4. Wende dann das Duplikate-Entfernen an, mit der Hilfsspalte als Kriterium und der Option "keine Überschrift"
5. Lösche die Hilfsspalte.
nach diesem Schema geht es eigentlich problemlos und auch bei größeren Datenmengen sehr schnell.
ansonsten muss man schauen, dass möglichst nicht jede Zelle einzeln löscht, sondern möglichst viele Zellen im Block.
dh der erste Schritt wäre mal, alle nebeneinander liegenden Zellen gemeinsam zu löschen:
Cells(t, 1).Resize(, 7).Delete Shift:=xlup

der nächste Step wäre, dass du die Liste nach der Hilfsspalte sortierst, so dass alle Zeilen mit 1 direkt untereinander stehen um so als Block gelöscht werden zu können:
Range("A:G").Sort Key1:=Range("G1"), order1:=xlascending, Header:=xlyes
Cells(2, 1).Resize(Worksheetfunction.CountIf(Columns(7), 1), 7).Delete
Gruß Daniel
Anzeige
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 15:25:09
HPG
Da auf dem Arbeitsblatt nicht nur die Daten stehen, ist es mit dem Sortieren o.ä. immer so 'ne Sache...
Was muß ich denn statt der 2 in die Formel schreiben, damit Excel mir die Zeilennummer in die Zelle schreibt?
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 15:31:20
Daniel
Hi
dafür gibt's die Funktion ZEILE()
wenn du das Sortieren auf den Zellbereich mit den Daten einschränkst, sollten die anderen Zellbereiche nicht verändert werden.
Gruß Daniel
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 15:49:01
HPG
ZEILE() hatte ich schon gefunden, und jetzt weiß ich auch, daß man in VBA ROW() und nicht etwa Row() schreiben muß.
Danke für die Hilfe, denn so klappt es prima und v.a. schnell.
Anzeige
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 16:01:25
Daniel
In VBA ist es egal, ob du "Row", "ROW" oder "row" schreibst.
Gruß Daniel
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 16:04:19
HPG
Dann war wohl noch 'n Fehler drin, den ich unbewußt behoben habe. Aber egal, jetzt funktioniert's.
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 15:13:36
ChrisL
Hi
Hier noch eine Möglichkeit:
Sub t()
With Range("G2:G" & Cells(Rows.Count, 1).End(xlUp).Row)
.FormulaR1C1 = "=IF(OR(RC[-4]="""",RC[-1]=""""),1,"""")"
.Value = .Value
If WorksheetFunction.Count(.Value) > 0 Then _
.SpecialCells(xlCellTypeConstants).EntireRow.Delete
End With
End Sub
cu
Chris
AW: Zellebreiche löschen und das möglichst schnell
14.10.2019 18:52:39
Günther
Moin,
ich kann mir vorstellen, dass das mit Power Query schnell und gut machbar ist.
Ohne Muster-xlsx mit klarer Wunschvorstellung bleibt es aber bei meiner Vorstellung.
Gruß
Günther
Anzeige

192 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige