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

Fehlermeldung:Laufzeitfehler 1004 keine Zellen gef

Fehlermeldung:Laufzeitfehler 1004 keine Zellen gef
04.08.2017 10:34:05
Peter
Hallo ihr Excelspezialisten,
zerbreche mir seit Stunden den Kopf wie ich eine Lösung finde ohne Erfolg.
Ich hoffe ihr könnt mir helfen, wie so oft. Bereits hier an alle besten Dank.
Ich erhalte bei nachstehendem Code folgende Meldung:
Laufzeitfehler 1004 - keine Zellen gefunden
Der Fehler tritt auf nach der Zeile
'löscht den gefilterten Bereich
mit der Zeile:
Range(Cells(2, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 11)).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
Sub Diff_Lehrerliste_vorherige_mit_Lehrerliste_aktuell_vergleichen_filtern_löschen()
Dim lngI As Long, intWert As Integer
Application.ScreenUpdating = False
Worksheets("Lehrerliste_aktuell").Activate
For lngI = 2 To Cells(Rows.Count, 1).End(xlUp).Row
intWert = Application.WorksheetFunction. _
CountIf(Worksheets("Diff_Lehrerliste_vorherige").Range("A:A"), Cells(lngI, 1).Value)
If intWert > 0 Then
Cells(lngI, 1).Interior.ColorIndex = 3
End If
Next lngI
Application.ScreenUpdating = True
'Filtert den farbigen Bereich
Range(Cells(1, 1), Cells(Cells(65536, 1).End(xlUp).Row, 11)).Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$K$201").AutoFilter Field:=1, Criteria1:=RGB(255, 0 _
, 0), Operator:=xlFilterCellColor
'löscht den gefilterten Bereich
Range(Cells(2, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 11)).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
Selection.AutoFilter
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A2").Select
End Sub

Was muss bitte eingefügt werden, damit es ohne Fehlermeldung mit
Selection.Autofilter weiter geht.
Besten Dank für eure Hilfe.
Gruss
Peter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung:Laufzeitfehler 1004 keine Zellen gef
04.08.2017 11:01:52
ChrisL
Hi Peter
Zwar nicht die feine Art, aber mit folgender Zeile überspringst du den Fehler:
On Error Resume Next
(eins oberhalb von der Fehlerzeile einfügen)
Falls du optimieren willst, Select und Activate entfernen:
http://www.online-excel.de/excel/singsel_vba.php?f=78
cu
Chris
AW: Fehlermeldung:Laufzeitfehler 1004 keine Zellen gef
04.08.2017 11:12:35
Peter
Hallo Chris,
besten Dank für Deine Hilfe.
Aber On Error Resume Next ist nur eine Notlösung.
Gibt es nicht eine Lösung in der Art - wenn sichtbarer Bereich ohne 1. Zeile leer dann - resume next
sonst durchführen.
Ich weiss nur nicht wie ich das Schreiben kann.
Gruss
Peter
Anzeige
AW: Fehlermeldung:Laufzeitfehler 1004 keine Zellen gef
04.08.2017 11:21:46
Werner
Hallo Peter,
so kannst du prüfen, ob du ein Filterergebnis hast oder nicht und dann entsprechend reagieren.
 If Worksheets("Tabelle1").AutoFilter.Range.Columns(1) _
.SpecialCells(xlCellTypeVisible).Cells.Count = 1 Then
MsgBox "Suchbegriff nicht gefunden"
End If
Das Tabellenblatt und die Spalte (Columns) mußt du an deine Verhältnisse anpassen.
Gruß Werner
AW: Fehlermeldung gelöst
04.08.2017 12:57:55
Peter
Hallo Werner,
besten Dank für Deine Hilfe.
Habe mich für die Variante von Chris entschieden. Funktioniert jedoch nur mit kleiner Änderung:
If Range("$A$1:$K$201").SpecialCells(xlCellTypeVisible).Areas.Count grösser 1 Then
'löscht den gefilterten Bereich
Range(Cells(2, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 11)).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
End If
Wünsche Dir noch einen schönen Tag.
Gruss
Peter
Anzeige
AW: Fehlermeldung:Laufzeitfehler 1004 keine Zellen gef
04.08.2017 11:23:11
ChrisL
Hi Peter
Zugegeben schön ist es nicht, aber bei einem solch kleinen übersichtlichen Makro m.E. akzeptabel. Wenn du einen Schönheitspreis gewinnen willst, dann starte besser bei den Select ;)
If Range("$A$1:$K$201").SpecialCells(xlCellTypeVisible).Areas.Count > 1 Then ...
cu
Chris
AW: Fehlermeldung gelöst
04.08.2017 12:57:21
Peter
Hallo Chris,
besten Dank für Deine Hilfe.
Habe mich für Deine Variante entschieden. Funktioniert jedoch nur mit kleiner Änderung:
If Range("$A$1:$K$201").SpecialCells(xlCellTypeVisible).Areas.Count grösser 1 Then
'löscht den gefilterten Bereich
Range(Cells(2, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 11)).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
End If
Wünsche Dir noch einen schönen Tag.
Gruss
Peter
Anzeige
AW: Fehlermeldung:Laufzeitfehler 1004 keine Zellen gef
04.08.2017 11:30:58
Daniel
Hi
ermittle die Anzahl der sichtbaren Zeilen mit Hilfe der der Funktion TEILERGEBNIS(3;...) bzw in VBA WORKSHEETFUNCTION.SUBTOTAL(3, ...)
das entspricht Anzahl2 unter Berücksichtigung der gefilterten Zeilen, dh per Autofilter ausgeblendete Zeilen werden nicht mitgezählt.
IF Worksheetfunction.SubTotal(3, Range(linke_obere_Zelle, rechte_untere_Zelle) > 0 Then
Range(linke_obere_Zelle, rechte_untere_Zelle).SpecialCells(xlcelltypevisible).EntireRow.Delete
end If
du musst für das SubTotal auch nicht den ganzen Zellbereich verwenden, es reicht aus eine Spalte zu nehmen, die keine Leerzellen enthält.
Gruß Daniel
Anzeige
AW: Fehlermeldung gelöst
04.08.2017 12:56:24
Peter
Hallo Daniel,
besten Dank für Deine Hilfe.
Habe mich für die Variante von Chris entschieden. Funktioniert jedoch nur mit kleiner Änderung:
If Range("$A$1:$K$201").SpecialCells(xlCellTypeVisible).Areas.Count grösser 1 Then
'löscht den gefilterten Bereich
Range(Cells(2, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 11)).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
End If
Wünsche Dir noch einen schönen Tag.
Gruss
Peter
AW: Fehlermeldung gelöst
04.08.2017 13:17:48
Daniel
Hi
diese Lösung hat eine Lücke.
Wenn die Filterung ergibt, das alle Zellen sichtbar sind oder des so ist, dass die Zeilen 1-x sichtbar und die Zeilen x-Ende ausgeblendet sind, dann ist die Anzahl der sichtbaren Areas ebenfalls gleich 1 und das Löschen wird ebenfalls nicht ausgeführt.
eine weitere mögliche Prüfung wäre, dass du im gefilterten Bereich inklusive der Überschriftenzeile in der ersten Spalte im Sichtbaren Bereich die Zellen zählst und diese Anzahl größer 1 sein muss:
With Range(Cells(2, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 1))
if .SpecialCells(xlCellTypeVisible).Cells.count > 1 then
.Offset(1, 0).SpecialCells(xlcelltypevisible).EntireRow.Delete
end if
end with

Gruß Daniel
Anzeige
AW: Fehlermeldung gelöst
04.08.2017 14:32:38
Peter
Hallo Daniel,
Danke für den Hinweis habe ihn gleich ausprobiert, funktioniert.
Gruss
Peter

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige