Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro: bestimmte Zeilen löschen

Makro: bestimmte Zeilen löschen
14.03.2006 15:41:57
Meni
Hallo miteinander,
ich habe ein Tabellenblatt mir mehreren Spalten, in denen verschiedene Werte stehen.
Problem:
Ich möchte komplette Zeilen löschen, wenn in bestimmten Zellen bestimmte Werte stehen
Bsp.
* B2 ist leer, deshalb soll die ganze Zeile 2 gelöscht werden
oder
* in B5 steht die 99, deshalb soll die ganze Zeile 5 gelöscht werden.
Es kann auch sein, dass die "2" oder die "99" wie in diesem Beispiel mehfach in der Spalte vorkommen, deshalb muss die ganze Spalte durchsucht werden und alle Zeilen mit "2" und "99" gelöscht werden,
Das ganze muss in ein Makro rein, damit es automatisiert werden kann.
Vielen Dank
Gruß Meni

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: bestimmte Zeilen löschen
14.03.2006 15:58:21
IngGi
Hallo Meni,
dieses Makro löscht alle Zellen des aktiven Arbeitsblattes, die eine Zelle mit 99 oder 2 als Inhalt haben.

Sub Zeilen_loeschen()
Dim rng As Range
Do
Set rng = Cells.Find(What:="99", LookAt:=xlWhole)
If Not rng Is Nothing Then rng.EntireRow.Delete
Loop Until rng Is Nothing
Do
Set rng = Cells.Find(What:="2", LookAt:=xlWhole)
If Not rng Is Nothing Then rng.EntireRow.Delete
Loop Until rng Is Nothing
End Sub
Gruß Ingolf
Zusatzfrage
14.03.2006 16:05:37
Meni
Hi Ingolf,
super, vielen Dank, noch eine Zusatzfrage:
Wie kann ich das auf bestimmte Spalten begrenzen? Also ich möchte angeben, dass nur Spalte "Alter" (oder auch Spalte C) oder so durchsucht wird?
Gruß Meni
Anzeige
AW: Zusatzfrage
14.03.2006 16:13:00
Hoffi
Hallo Meni,
ersetze Cells.Find durch Columns(1).Find.
Wobei die 1 für Spalte A steht, kannst Du ggf. anpassen (C wäre 3)
Grüße
Hoffi
noch eine Zusatzfrage
14.03.2006 16:21:57
Meni
Danke Hoffi, funktioniert einwandfrei, trotzdem noch eine Frage:
Wenn ich eine leere Zelle such, die er löschen soll, bleibt er in der Schleife hängen!
hier der Ausschnitt: Find(What:="",...
dachte, ich muss für leere Zelle "" eintragen, scheint aber falsch zu sein ?
Wie schreibt man das ansonsten rein?
Danke
AW: noch eine Zusatzfrage
14.03.2006 16:34:06
IngGi
Hallo Meni,
verwende an Stelle des Do...Loop-Blockes folgende Programmzeile:
Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Gruß Ingolf
Anzeige
AW: noch eine Zusatzfrage
14.03.2006 16:42:09
Hoffi
Hallo Meni,
mein Internet ist heut so lahm, tz tz tz tz...
hier der Code von Ingolf, angepasst.

Sub Zeilen_loeschen()
Dim rng As Range
Columns(3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Do
Set rng = Columns(3).Find(What:="99", LookAt:=xlWhole)
If Not rng Is Nothing Then rng.EntireRow.Delete
Loop Until rng Is Nothing
Do
Set rng = Columns(3).Find(What:="2", LookAt:=xlWhole)
If Not rng Is Nothing Then rng.EntireRow.Delete
Loop Until rng Is Nothing
End Sub

Grüße
Hoffi
AW: noch eine Zusatzfrage
14.03.2006 16:48:09
Meni
Perfekt, das Makro läuft, vielen Dank an Euch beide!!
Grüße
Meni
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige