Anzeige
Archiv - Navigation
1172to1176
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

Loescht eine Zeile zuviel

Loescht eine Zeile zuviel
abu
Hallo Zusammen,
mit toller Unterstuetzung aus dem Forum habe ich mir folgende Zeilen Zusammen geschustert. Leider verhaelt der Code sich nicht ganz so wie ich mir das vortselle.
Selection.AutoFilter Field:=1, Criteria1:="=*OUT*", Operator:=xlAnd
With Worksheets("Sheet1")
If Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Selection.AutoFilter Field:=1
Else
Selection.AutoFilter Field:=1
End If
End With
Es wird ein Filter auf Spalte A gesetzt
Dann wird geprueft ob der Filter auch was anzeigt
Wenn ja, dann soll er diese Zeilen loeschen.
Die Pruefung hab ich eingebaut weil er mir sonst die Ueberschriften loescht.
Jetzt habe ich Festgestellt, dass wenn nur eine Zeile angezeigt wird nicht nur diese sondern auch wieder die Ueberschriftenzeile loescht und ich verstehe nicht ganz warum.
Koennte mir jemand diese Zeile erklaeren?
Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).SpecialCells
Beste Gruesse
Abu

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Loescht eine Zeile zuviel
18.08.2010 09:38:46
Gerd

Sub a2()
With Worksheets("sheet1")
On Error Resume Next
Intersect(.Columns(1).SpecialCells(xlCellTypeVisible), .AutoFilter.Range.Offset(1).Resize(. _
AutoFilter.Range.Rows.Count - 1)).EntireRow.Delete
.AutoFilter.ShowAllData
On Error GoTo 0
End With
End Sub

Auch hallo,
Gruß Gerd
AW: Loescht eine Zeile zuviel
18.08.2010 09:54:59
abu
Hallo Gerd,
danke fuer Deine Hilfe. Leider gibt er mir ein Error bei diesem Ausdruck: Columns (invalid)
Hast Du da eine Idee?
Selection.AutoFilter Field:=1, Criteria1:="=*OUT*", Operator:=xlAnd
With Worksheets("Sheet1")
If Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
On Error Resume Next
Intersect(.Columns(1).SpecialCells(xlCellTypeVisible), .AutoFilter.Range.Offset(1).Resize(. _
AutoFilter.Range.Rows.Count - 1)).EntireRow.Delete
.AutoFilter.ShowAllData
On Error GoTo 0
Else
Selection.AutoFilter Field:=1
End If
End With
Gruss
Abu
Anzeige
AW: Loescht eine Zeile zuviel
18.08.2010 10:10:07
Gerd
Hallo Abu,
bei mir nicht. Und nun? Beispieldatei?
Gruß Gerd
AW: Loescht eine Zeile zuviel
18.08.2010 10:34:52
abu
Hallo Gerd,
hier der link fuer die Beispieldatei. Habe direkt die Daten eingefuegt bei denen es schief laeuft.
https://www.herber.de/bbs/user/71118.xls
Gruss
Abu
AW: Loescht eine Zeile zuviel
18.08.2010 16:55:26
mpb
Hallo Abu,
das Problem dürfte nur auftreten, wenn als Ergebnis des Filterungsvorgangs nur die Zeile 2 übrigbleibt. Mit folgender Fallunterscheidung sollte der Code funktionieren:
With Worksheets("Sheet1")
If Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
If Cells(Rows.Count, 1).End(xlUp).Row > 2 Then
Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Selection.AutoFilter Field:=1
Else
Rows(2).EntireRow.Delete
Selection.AutoFilter Field:=1
End If
Else
Selection.AutoFilter Field:=1
End If
End With~f~
Noch ein Hinweis: Du verwendest zwar With-End With, in dem Block zwischen den beiden Zeilen referenzierst Du aber falsch. In der ersten Zeile
~f~If Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
beziehen sich Cells und Rows auf das aktive Blatt, nicht auf Sheet1. Da Du zumindest in der Testdatei nur ein Blatt "Sheet1" hast, macht das keinen Unterschied. Bei nur einem Blatt in der "Echtdatei" ist das With aber ohnehin überflüssig.
Gruß
Martin
P.S. Es wäre besser gewesen, die Nachfrage im ursprünglichen Thread zu stellen, damit alle die "Vorgeschichte" kennen.
Anzeige
AW: Loescht eine Zeile zuviel
19.08.2010 09:29:22
abu
Hallo Martin,
vielen Dank fuer Deine Unterstuetzung und vor allem fuer Deine Anmerkungen. Bin ja immer froh wenn ich mein bescheidenes VBA-Wissen etwas erweitern kann.
Werde das naechste mal im Ursprungsthread bleiben.
Beste Gruesse
Abu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige