In Spalte suchen dann Zeile löschen



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: In Spalte suchen dann Zeile löschen
von: Martin M.
Geschrieben am: 21.06.2002 - 10:48:58

hallo,

ich habe folgendes Problem:

ich möchte in einer Spalte nach einem bestimmten Wert suchen (0), wenn dieser Wert gefunden wurde, soll die ganze entsprechende Zeile gelöscht werden. Das soll solange laufen bis keine Nuller mehr gefunden werden.

ich hoffe jemand kann mir helfen.

Danke
Gruß
Martin.

nach oben   nach unten

Re: In Spalte suchen dann Zeile löschen
von: Timo
Geschrieben am: 21.06.2002 - 11:00:46

Hallo Martin,

ganz einfach:


Sub Löschen()
Dim As Single

Application.ScreenUpdating = False
For i = 1 To 65536
    If Cells(i, 1).Value = "0" Then 
    '1 steht für Spalte A, 2 wäre Spalte B etc.
        Rows(i).Delete Shift:=xlUp
        i = i - 1
    End If
Next i
Application.ScreenUpdating = True
End Sub

Wenn in Spalte A eine 0 vorkommt, wird die Zeile komplett gelöscht.

Gruss
Timo

nach oben   nach unten

Re: In Spalte suchen dann Zeile löschen
von: Thomas Wolpert
Geschrieben am: 21.06.2002 - 11:03:39

Hallo Martin,
Bin zwar noch Anfänger, würde es aber wie folgt lösen:

If activecell.value = 0 then
Selection.EntireRow.Delete
End If

Bau es in eine Schleife ein, wichtig, die Zelle mit Null muß aktiviert sein.

Gruß
Thomas

nach oben   nach unten

Re: In Spalte suchen dann Zeile löschen
von: Timo
Geschrieben am: 21.06.2002 - 11:12:44

Hallo Thomas,

deine Methode hat den NAchteil, dass die Schleife sehr lange dauern würde, da du jede einzelne Zelle in der Spalte erstmal aktivierts und dann prüfst, ob in der aktiven Zelle eine 0 steht. Das ist sehr zeitintensiv. Schau dir mein Beispiel an, das geht ziemlich fix, auch dank der Verwendung von "Application.Screenupdating = False", was nochmal eine Menge Zeit spart.

Du kannst das auch selbst ausprobieren, stoppe einfach mal die Zeit, die dein Makro in einer Schleife von 1 - 65536 benötigt und lass meines dagegen laufen.

Das ganze soll jetzt keine Besserwisserei sein, ich habe die selben Fehler vor gar nicht allzulanger Zeit selbst noch gemacht, da ich auch erst seit 3 Monaten VBA progge.

Gruss
Timo


nach oben   nach unten

Re: In Spalte suchen dann Zeile löschen
von: Martin M.
Geschrieben am: 21.06.2002 - 11:25:40

cool, danke.

werde ich ausprobieren.

kann ich Deinen Code einfach in ein bestehendes Makro einfügen oder gibts da Probleme?


nach oben   nach unten

Re: In Spalte suchen dann Zeile löschen
von: Timo
Geschrieben am: 21.06.2002 - 11:31:29

Gern geschehen. Du kannst den Code natürlich einfach in ein Makro kopieren, einfacher wird noch sein, das Sub einfach mit in dein Modul zu packen und in deinem Makro an der Stelle, wo du die Nuller-Zeilen löschen willst zu schreiben:

Call Löschen

Viel Erfolg!

Timo

nach oben   nach unten

Re: In Spalte suchen dann Zeile löschen
von: Thomas Wolpert
Geschrieben am: 21.06.2002 - 11:49:57

Hi Timo,
ich bin Dir gar nicht böse, im Gegenteil, ich bin Dir dankbar,
denn als Anfänger habe ich oft ein Laufzeitproblem und freue mich über jeden Tip, der mir hilft.
Aber eine andere Frage, ich habe weiter unten (heute) ein Prob. gepostet. Meinst Du, Du hast eine Idee, Link, o.ä. für mich?
Wäre echt super
Thomas

nach oben   nach unten

Re: In Spalte suchen dann Zeile löschen
von: Martin M.
Geschrieben am: 21.06.2002 - 13:00:03

Danke hat super funktioniert.

nur noch eine Frage:

For i = 1 To 65536


heisst das wenn ich nur 1000 zeilen habe, dann kann ich To 1000 eintragen, dann wiederholt er die schleife bis zu 1000 mal.

richtig?

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "In Spalte suchen dann Zeile löschen"