Microsoft Excel

Herbers Excel/VBA-Archiv

Löschen von Zeilen unter 1 Bedingung

Betrifft: Löschen von Zeilen unter 1 Bedingung von: Ralf
Geschrieben am: 08.08.2008 20:15:18

Hallo,

ich habe in einer Excel Liste Produkte geführt, die den aktuellen Lagerbestand anzeigen.
Dort werden auch die Produkte aufgeführt, deren Produkte einen Lagerbestand von 0 haben.
Der Lagerbestand wird in Spalte B aufgeführt, die Produkte stehen in Spalte A. Der Datenbereich beginnt ab Zeile 7.

Gibt es ein Makro das die Zeilen löscht, in denen der Lagerbestand auf 0 steht?
In einem Buch habe ich eine Schleife gesehen, die leere Zeilen oder Spalten löschen kann. Gibt es so etwas auch mit Bedingung?

Gruß

Ralf

  

Betrifft: AW: Löschen von Zeilen unter 1 Bedingung von: Daniel
Geschrieben am: 08.08.2008 20:34:25

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


  

Betrifft: AW: Löschen von Zeilen unter 1 Bedingung von: Ralf
Geschrieben am: 08.08.2008 20:50:41

Hallo Daniel,

vielen Dank für Deine ausführliche Antwort.
Wie müsste denn das Makro vollständig aussehen? Ich kenne mich mit Schleifen nicht aus.

Gruß

Ralf


  

Betrifft: AW: Löschen von Zeilen unter 1 Bedingung von: Daniel
Geschrieben am: 08.08.2008 21:20:46

Hi
ich hab ja auch gesagt, du sollst keine Schleifen verwenden.
die beiden andern Methoden die ich dir gezeigt habe, kannst du problemlos mit dem Makrorekorder aufzeichnen.

wenn du von mir ein bespielmakro haben willst, dann sollte ich genauer wissen, wie die Datei aussieht:
- Formeln oder Fixwerte
- vieviele Datenzeilen hat die Datei
- ist die Zeilenanzahl fix oder Variabel
- wieviele Zeilen sind schätzungsweise zu löschen (grobe anteilige Schätzung reicht)

ne Beispieldatei zum Ausprobieren wäre natürlich schön.

Gruß, Daniel


  

Betrifft: AW: Löschen von Zeilen unter 1 Bedingung von: Ralf
Geschrieben am: 08.08.2008 22:41:07

Hallo Daniel,

vielen Dank nochmal für Deine ausführliche Antwort!!
Ich bin schon anderweitig fündig geworden, trotzdem aber noch mal Danke für die ausführliche Erklärung.

Ich werde wenn ich mehr Zeit habe das mal versuchen umzusetzen um langfristig auch was mitzunehmen.

Gruß und schönes Wochenende noch

Ralf


 

Beiträge aus den Excel-Beispielen zum Thema "Löschen von Zeilen unter 1 Bedingung"