AW: Löschen von Zeilen unter 1 Bedingung
08.08.2008 20:34:25
Zeilen
Hi
sowas gibt es schon, man kann auch mit
IF Cells(i,2).Value = 0 then Rows(i).delete
eine bedingung einbauen, aber
die bessere lösung als eine Schleife ist:
- setze den Autofilter und filtere nach 0
- markiere alle Zeilen
- klicke auf BEARBEITEN - GEHE ZU INHALTE - Nur sichtbare Zellen
- klicke auf BEARBEITEN - LÖSCHEN - Ganze Zeile
bei grossen Datenmengen empfiehlt es sich, die Daten vorher noch nach dem Lagerbestand zu sortieren.
das erhöht die Geschwindigkeit beim Löschen und bei sehr Grossen Datenmengen (+10.000 Zeilen) ist es sogar erforderlich, weil sonst das löschen der selektierten Daten nicht zuverlässig funktioniert.
wenn du das als Makro brauchst, zeichen dir diese Vorgehensweise mit dem Makrorecorder auf. und vergiss die Schleifen zum löschen von Zeilen. das ist viel zu langsam und vielleicht nur für ein paar hundert Datensätze tauglich.
wenn die Lagerbestände FIX-Werte sind und keine Formeln, dann kannst du auch so vorgehen:
- Spalte B markieren
- BEARBEITEN -ERSETZEN klicken und "0" durch nichts ersetzen (dabei die Option "gesamten Zellinhalt vergleichen" aktivieren !!!)
- BEARBEITEN - GEHE ZU INHALTE - LEERZELLEN klicken
- BEARBEITEN - ZELLEN LÖSCHEN - GANZE ZEILE klicken.
auch das kannst du bei Bedarf mit dem Recorder aufzeichen.
auch hier hilft Sortieren, die Geschwindigkeit deutlich zu steigern
auch dieses ist als Makro einfacher und schneller (bei sortierten Daten) als jede Schleife.
Gruß, Daniel
l