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

Zeile löschen wenn bestimmte Zellen leer sind

Zeile löschen wenn bestimmte Zellen leer sind
18.01.2013 13:44:59
Tobias
Hallo!
Ich bräuchte nochmal eure Hilfe.
Ich möchte in einem Bereich alle Zeilen löschen, wenn in den Zelle der Spalten 8 und 9 nichts steht.
Mein Code dazu lautet:
sub zeilenloeschen()
Dim BereichD As Long
Dim Zeile As Range
Dim BereichE As Range
BereichD = Worksheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row
Set BereichE = Worksheets("Tabelle1").Range(Cells(1, 8), Cells(BereichD, 9))
For Each Zeile In BereichE.Rows
If Worksheets("Tabelle1").Cells(Zeile, 8) = "" And Worksheets("Tabelle1").Cells(Zeile, 9) = "" Then
Zeile.Delete
End If
Next Zeile
sub end
Er sagt mir aber dass eine "Anwendungs- oder objektorientierter Fehler" vorliegt und stopt in der Zeile:
BereichD = Worksheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row
Kann mir jemand helfen den Code ans laufen zu bekommen?
Herzlichen Dank schonmal!
Tobi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen wenn bestimmte Zellen leer sind
18.01.2013 13:59:14
Daniel
Hi
wenn du mit mehrern Tabellenblättern arbeitest, solltest du vor jedem CELLS, RANGE, ROWS und COLUMNS immer das Tabellenblatt mit angeben.
Ohne die Tabellenblattangabe beziehen sich diese Zellbezüge immer auf das gerada aktiven Tabellenblatt.
das hat beispielsweise zur Folge, daß in der Zeile:
Set BereichE = Worksheets("Tabelle1").Range(Cells(1, 8), Cells(BereichD, 9))

die Range auf einem anderen Tabellenblatt liegen kann (Tabelle1) als die Zellen, die sie definieren sollen (das aktive Tabellenblatt) und das funktioniert nicht, die Cells müssen auf dem gleichen Tabellenblatt liegen wie die Range.
BereichD = Worksheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row

hier knallts, wenn zufälligerweise kein Tabellenblatt aktiv ist, sondern ein Diagrammblatt, denn dann versucht Rows.Count die Zeilen auf dem aktiven Diagrammblatt zu zählen und das Diagrammblatt hat keine Zeilen, also gibts nen Fehler.
Richtig wäre:
BereichD = Worksheets("Tabelle1").Cells( Worksheets("Tabelle1").Rows.Count, 3).End(xlUp).Row
Set BereichE = Worksheets("Tabelle1").Range( Worksheets("Tabelle1").Cells(1, 8),  Worksheets("Tabelle1").Cells(BereichD, 9))
etwas schreibarbeit kann man sich mit der WITH-Klammer sparen (beachte die Punkte !)
With Worksheets("Tabelle1")
BereichD = .Cells(.Rows.Count, 3).End(xlUp).Row
Set BereichE = .Range(.Cells(1, 8),  .Cells(BereichD, 9))
End With
Gruß Daniel
ps. Warum filtert du nicht einfach mit dem Autofiler in den Spalten nach "Leer" und löschst dann alle Zeilen?
In gefilterten Tabellen werden nur die sichtbaren Zeilen bearbeitet und wenn du nach dem löschen den autofilter wieder aufhebst, sind die vorher ausgeblendeten Zeilen wieder da.
das ist in der Regel schneller, als jede Zeile einzeln per schleife zu löschen.
wie du den Autofilter in VBA einsetzt, kannst du mit dem Recorder rausfinden.
Gruß Daniel

Anzeige
AW: Zeile löschen wenn bestimmte Zellen leer sind
18.01.2013 14:00:10
Rudi
Hallo,
Zeilen immer von unten löschen.
Sub zeilenloeschen()
Dim BereichD As Long
Dim Zeile As Long
Dim BereichE As Range
With Worksheets("Tabelle1")
BereichD = .Cells(Rows.Count, 3).End(xlUp).Row
Set BereichE = .Range(.Cells(1, 8), .Cells(BereichD, 9))
End With
With BereichE
For Zeile = .Rows.Count To 1 Step -1
If .Cells(Zeile, 1) = "" And .Cells(Zeile, 2) = "" Then
.Rows(Zeile).EntireRow.Delete
End If
Next Zeile
End With
End Sub

Gruß
Rudi

AW: Zeile löschen wenn bestimmte Zellen leer sind
18.01.2013 14:11:52
Tobias
Wow!
Herzlichen Dank euch für die Antworten. Die Erkäuterungen helfen mir wirklich sehr die Sache zu verstehen, besonderen Dank hierfür!!!
VG
Tobi
Anzeige

109 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige