Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: wenn "Keine Zellen gefunden" Code nicht anhalten

wenn "Keine Zellen gefunden" Code nicht anhalten
13.05.2008 10:32:20
Peter
Guten Tag
Ich habe eine Frage zu untenstehendem Code und zwar zur Zeile
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
wenn keine Konstanten vorhanden, kommt die Fehlermeldung "Keine Zellen vorhanden". Wie kann man diese Meldung unterdrücken, dass der Code hier nicht angehalten wird?
Danke für eine Antwort.
Peter
With Range(Cells(Z1, 2), Cells(Z2, 2))
.EntireRow.Sort key1:=Cells(Z1, SP + 2), order1:=xlAscending, header:=xlNo
.FormulaR1C1 = "=IF(RC[" & SP & "]=R[-1]C[" & SP & "],TRUE,RC[-1])"
.Formula = .Value
.EntireRow.Sort key1:=Cells(Z1, 2), order1:=xlAscending, header:=xlNo
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
End With

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn "Keine Zellen gefunden" Code nicht anhalten
13.05.2008 10:36:00
Thomas
Entweder noch eine zusätzliche Abfrage einbinden, ob Konstanten da sind oder die "harte" Methode mit "On Error Resume Next".
Gruß

AW: wenn "Keine Zellen gefunden" Code nicht anhalten
13.05.2008 10:37:59
{Boris}
Hi Peter,
aus der Hand:
Dim C As Range
With Range(Cells(Z1, 2), Cells(Z2, 2))
.EntireRow.Sort key1:=Cells(Z1, SP + 2), order1:=xlAscending, header:=xlNo
.FormulaR1C1 = "=IF(RC[" & SP & "]=R[-1]C[" & SP & "],TRUE,RC[-1])"
.Formula = .Value
.EntireRow.Sort key1:=Cells(Z1, 2), order1:=xlAscending, header:=xlNo
Set C = .SpecialCells(xlCellTypeConstants, 4)
If Not C Is Nothing Then C.EntireRow.Delete
End With
Grüße Boris

Anzeige
AW: wenn "Keine Zellen gefunden" Code nicht anhalten
13.05.2008 11:02:00
Peter
Hallo Boris
Nun kommt die gleiche Fehlermeldung bei Set c
Ich habe nun versucht, vorgängig eine Abfrage einzufügen im Sinne von
if isnot Error .SpecialCells(xlCellTypeConstants, 4) then .SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
else
endif
End with
doch ob das geht und die Syntax ist mir da nicht klar.
Für eine Rückmeldung wäre ich dankbar.
Gruss, Peter

Anzeige
Stimmt...
13.05.2008 11:13:28
{Boris}
Hi Peter,
...der Zugriff auf eine leere SpecialCells-Menge verursacht immer einen Fehler.
Also mit On Error arbeiten!
Grüße Boris
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehebung bei "Keine Zellen gefunden" in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Code einfügen: Öffne den VBA-Editor in Excel (Alt + F11) und füge den folgenden Code ein:

    Dim C As Range
    With Range(Cells(Z1, 2), Cells(Z2, 2))
        .EntireRow.Sort key1:=Cells(Z1, SP + 2), order1:=xlAscending, header:=xlNo
        .FormulaR1C1 = "=IF(RC[" & SP & "]=R[-1]C[" & SP & "],TRUE,RC[-1])"
        .Formula = .Value
        .EntireRow.Sort key1:=Cells(Z1, 2), order1:=xlAscending, header:=xlNo
    
        On Error Resume Next
        Set C = .SpecialCells(xlCellTypeConstants, 4)
        On Error GoTo 0
    
        If Not C Is Nothing Then C.EntireRow.Delete
    End With
  2. On Error Resume Next: Diese Zeile unterdrückt die Fehlermeldung, wenn keine Konstanten vorhanden sind. Danach wird der Fehlerstatus zurückgesetzt.

  3. Abfrage einfügen: Optional kannst Du auch eine zusätzliche Abfrage einfügen, um zu prüfen, ob Konstanten vorhanden sind, bevor Du versuchst, sie zu löschen.


Häufige Fehler und Lösungen

  • Fehlermeldung bei Set C: Wenn Du die Fehlermeldung "Keine Zellen gefunden" bekommst, stelle sicher, dass Du On Error Resume Next vor dem Setzen von C verwendest.

  • Syntaxfehler: Achte darauf, dass die Syntax bei der Verwendung von If-Anweisungen korrekt ist. Eine häufige Fehlerquelle ist das Fehlen von End If.


Alternative Methoden

  • Zusätzliche Abfrage: Anstelle von On Error Resume Next kannst Du auch eine Abfrage wie folgt einfügen:

    If Application.WorksheetFunction.CountA(Range(Cells(Z1, 2), Cells(Z2, 2))) > 0 Then
        ' Code zum Löschen der Zeilen
    End If
  • Verwendung von Find: Du kannst auch die Find-Methode verwenden, um gezielt nach Zellen mit Konstanten zu suchen.


Praktische Beispiele

Hier ist ein Beispiel, wie Du den Code in einer Funktion verwenden kannst:

Sub LöscheKonstanten()
    Dim C As Range
    With Range(Cells(1, 2), Cells(10, 2))
        On Error Resume Next
        Set C = .SpecialCells(xlCellTypeConstants, 4)
        On Error GoTo 0

        If Not C Is Nothing Then
            C.EntireRow.Delete
        End If
    End With
End Sub

Dieses Beispiel löscht alle Zeilen, die Konstanten im angegebenen Bereich enthalten.


Tipps für Profis

  • Fehlerbehandlung optimieren: Verwende On Error-Anweisungen gezielt, um Deine Fehlerbehandlung zu optimieren und unerwünschte Fehlermeldungen zu vermeiden.

  • Code modular gestalten: Teile komplexe Codes in kleinere, wiederverwendbare Funktionen auf, um die Lesbarkeit und Wartbarkeit zu verbessern.


FAQ: Häufige Fragen

1. Wie verhindere ich, dass mein Code bei Fehlern stoppt?
Verwende die Anweisung On Error Resume Next, um die Ausführung des Codes bei Fehlern fortzusetzen.

2. Was passiert, wenn keine Konstanten vorhanden sind?
Wenn keine Konstanten vorhanden sind und Du On Error Resume Next verwendest, wird der Fehler unterdrückt, und der Code kann normal fortgesetzt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige