Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1848to1852
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

Selection.EntireRow.Delete

Selection.EntireRow.Delete
20.09.2021 12:02:32
Katrin
Hallo,
ich weiß leider nicht weiter und auch meine Kollegen verstehen nicht, warum es nicht funktioniert.
Ich filtere eine Tabelle in zwei Spalten. Die dann sichtbaren (ganzen) Zeilen sollen gelöscht werden.

PlausiSheet.UsedRange.AutoFilter Field:=SP_KOPF_EE, Criteria1:="=" & "08"
PlausiSheet.UsedRange.AutoFilter Field:=SP_KOPF_OEH3, Criteria1:="=" & "870"
Range("PlausiFehler").Select
If Selection.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count > 0 _
Then
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.EntireRow.Delete
PlausiSheet.ShowAllData
End If
Ich habe schon verschiedenes ausprobiert. Ich bekomme immer den Laufzeitfehler 1004 "Die Delete-Methode des Range-Objektes konnte nicht ausgeführt werden."
Über einen hilfreichen Tipp wäre ich sehr froh.
Viele Grüße!
Katrin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Selection.EntireRow.Delete
20.09.2021 12:30:51
EtoPHG
Hallo,
Aus deinem Codeschnipsel ist das nicht ersichtlich. Es fehlen sämtliche Definitionen von Objekten und Variablen!
Zudem:
a) Vermute ich mal dass du mit einem Listen-Objekt (Tabelle im Tabellenblatt) arbeitest. Dann sollte auch dieses Objekt und dessen Eigenschaften angesprochen werden.
b) Solltest du Selektieren so schnell wie möglich vergessen (siehe: Wer selektiert....)
c) kann die Specialcells(type) Methode nicht mit Count &gt 0 geprüft werden, denn die zurückgegenbene Range ist Nothing, wenn nichts gefunden wird!
Da liegt also vieles im Argen. Besser eine Beispielmappe hochladen!
Gruess Hansueli
Anzeige
AW: Selection.EntireRow.Delete
20.09.2021 12:47:20
Daniel
c) kann man hier schon so, bzw so ähnlich machen.
die Überschriftenzeile ist ja immer sichtbar, auch wenn alles andere ausgeblendet ist.
Also müsste man diese dann für die Prüfung mit berücksichtigen und auf

Zellbereich_incl_Überschrift.Columns(1).SpecialCells(xlcelltypevisible).Cells.Count > 1
prüfen.
Gruß Daniel
AW: Selection.EntireRow.Delete
20.09.2021 12:42:07
Daniel
HI
warum willst du in der Range "PlausiFilter" löschen, wenn du den Autofilter über die ganze Tabelle erstellst (UsedRange) ?
wäre es dann nicht sinnvoller, auch diese für das Löschen zu verwenden?

With PlausiSheet.Usedrange
.AutoFilter Field:=SP_KOPF_EE, Criteria1:="=" & "08"
.AutoFilter Field:=SP_KOPF_OEH3, Criteria1:="=" & "870"
Range("PlausiFehler").Select
if .Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then .Offset(1, 0).EntireRow.Delete
.Worksheet.ShowAllData
end with
Gruß Daniel
Anzeige
korrektur
20.09.2021 12:43:34
Daniel
die Zeile mit dem Select kann raus

With PlausiSheet.Usedrange
.AutoFilter Field:=SP_KOPF_EE, Criteria1:="=" & "08"
.AutoFilter Field:=SP_KOPF_OEH3, Criteria1:="=" & "870"
if .Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then .Offset(1, 0).EntireRow.Delete
.Worksheet.ShowAllData
end with
Gruß Daniel
AW: korrektur
20.09.2021 13:35:44
Katrin
Vielen Dank, mit Deinem Code hat jetzt das Löschen der gefilterten Zeilen funktioniert :-)
Bei ".Worksheet.ShowAllData" kam leider ein Laufzeitfehler. Aber mit ".Autofilter" hat es dann geklappt.
Bis zum nächsten Mal!
Katrin
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige