Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1500to1504
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

Zeilen löschen - was mache ich falsch

Zeilen löschen - was mache ich falsch
11.07.2016 13:56:41
Boris
Hallo zusammen,
ich bin hier frisch angemeldet, lese aber schon eine weile mit. Ich habe ein kleines Problem mit einem Makro... und ich weiß nicht, warum es nicht funktioniert. Vielleicht weiß von euch jemand warum?!
Ich habe eine Tabelle und in Spalte "M" steht manchmal "FALSCH". Mit dem Makro möchte ich alle Zeilen, bei denen "FALSCH" steht löschen.
Ich schaue erst nach der letzten Zeile und möchte dann die Zeilen löschen...
Hier mal mein Makro:

Dim i As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 13) = "FALSCH" Then Rows(i).Delete
Next i
Danke und Grüße
Boris

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen - was mache ich falsch
11.07.2016 14:07:07
Michael
Hi Boris,
wenn in der Zelle Falsch steht, ist das ein Wahrheitswert, und für VBA ist der entweder true oder false.
Die Abfrage ließe sich so formulieren:
If Not Cells(i, 13) Then Rows(i).Delete

oder auch so:
If Cells(i, 13).Text = "FALSCH" Then Rows(i).Delete
Schöne Grüße,
Michael

AW: Zeilen löschen - was mache ich falsch
11.07.2016 14:10:34
Boris
Klar ... so einfach kann es sein.
.text funktioniert einwandfrei!
Vielen DANK!!!

gerne, kurze Erläuterung
11.07.2016 15:55:46
Michael
Hi,
Werners Vorschlag ist "logisch" gleichbedeutend mit meinem, aber für Dich wahrscheinlich einfacher nachzuvollziehen:
If Not Cells(i, 13) Then Rows(i).Delete
Not dreht den Wahrheitswert um: aus false wird true, aus true wird false, d.h. der Code nach dem Then wird ausgeführt, wenn Not false, und das ist true.
If Cells(i, 13) = False Then Rows(i).Delete
wenn cells(i,13) false ist, dann mache...
Bei SEHR VIELEN Daten ist beides schneller, als die .text-Variante, weil das Durchsuchen von Text länger dauert als das Verwerten eines Wahrheitswerts (kannst ja mal nach "boolean" recherchieren).
Schöne Grüße,
Michael

Anzeige
AW: gerne, kurze Erläuterung
11.07.2016 16:50:49
Werner
Hallo Michael,
schätze mal, deine Erklärung wird wohl ins Leere laufen. Meine Antwort hatte der Fragesteller ja eh ignoriert.
Auf der anderen Seite hätte ich sie ja gar nicht mehr posten sollen, du hattest deine ja schon eine Minute früher drin -mal wieder nicht aktualisiert vor dem Senden-
Gruß Werner

ach, mach Dir nix draus,
11.07.2016 17:10:24
Michael
Werner,
das mache ich "oft, aber nicht immer", und wenn nicht, steht garantiert schon eine Antwort drin...
Aber die Erklärung loszuwerden war mir ein Bedürfnis, ob sie auf fruchtbaren Boden fällt oder nicht.
Weiterhin happy exceling & Gruß,
Michael

Anzeige
AW: gerne, kurze Erläuterung
11.07.2016 17:03:53
Daniel
bei sehr vielen Daten sollte man sowieso eine andere Methode zum Löschen der Zeilen verwenden.
das Löschen der Zeilen einzeln per Schleife an sich ist so langsam, dass es auch nicht mehr viel ausmacht, ob du jetzt .Text oder .Value abfragst.
Ich z.B. verwende zum Löschen von Zeilen mit Bediunung vorzugsweise das RemoveDuplicates, weil es auch bei grossen und unsortierten Datenmengen sehr schnell geht.
Gruß Daniel

AW: Zeilen löschen - was mache ich falsch
11.07.2016 14:08:00
Werner
Hallo Boris,
Dim i As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 13) = False Then Rows(i).Delete
Next i
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige