Excel VBA vorhandenes Makro ändern
#1
Question 
Hallo zusammen,

ich habe eine Makro das mir alle Leerzeilen in einer Spalte sucht und die Komplette Zeile löscht.
Nun kommt es jedoch immer häufiger vor das in diesem Bereich keine leeren Spalten gefunden werden können.
Deshalb erscheint auch eine Fehlermeldung: Laufzeitfehler 1004 / Keine Zellen gefunden.

Nun möchte ich falls keine leeren Zellen in diesem Bereich gefunden werden das er diesen Punkt eben auslässt und das Makro fortsetzt.

Ausschnitt des Makros das die leeren Zellen löscht:
Code:
Dim rng As Range
    On Error Resume Next
    Set rng = Sheets("Retourenliste").Range("A11:A710").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then rng.EntireRow.Delete
    Set rng = Nothing
Das Makro würde dann mit dieser nächsten Zeile weiter gehen:
ActiveWorkbook.Worksheets("Retourenliste").AutoFilter.Sort.SortFields.Clear

Wäre wirklich Super wenn mir jemand hierbei helfen könnte.

Viele Grüße.
Top
#2
Hallo,

zeige bitte das vollständige Makro.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
(09.12.2020, 12:54)Pascala schrieb: Nun kommt es jedoch immer häufiger vor das in diesem Bereich keine leeren Spalten gefunden werden können.
Deshalb erscheint auch eine Fehlermeldung: Laufzeitfehler 1004 / Keine Zellen gefunden.

Moin!
Jedenfalls nicht aufgrund des geposteten Codes!
Schließlich schaltest Du die Fehlerbehandlung bewusst aus und rechtzeitig wieder an.

Folglich gehe ich davon aus, dass der Code nicht von Dir stammt.
Siehe die Anmerkung von Klaus-Dieter:
Vollständiger Code, meinethalben auch als komplette Beispieldatei.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#4
Ja richtig der Code ist nicht von mir!
Deshalb verstehe ich ihn auch nicht so ganz.

Hier der vollständige Code:
Code:
    ActiveSheet.Unprotect
    Dim rng As Range
    On Error Resume Next
    Set rng = Sheets("Retourenliste").Range("A11:A710").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then rng.EntireRow.Delete
    Set rng = Nothing
    ActiveWorkbook.Worksheets("Retourenliste").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Retourenliste").AutoFilter.Sort.SortFields.Add Key _
        :=Range("B10:B710"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Retourenliste").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("E11").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("B2").Select
    ActiveWorkbook.Worksheets("Retourenliste").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Retourenliste").AutoFilter.Sort.SortFields.Add Key _
        :=Range("A10:A710"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Retourenliste").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("Auswertung").Select
    ActiveWorkbook.RefreshAll
    Workbooks("adi_Retouren").Activate
    ActiveWorkbook.Close
End Sub
Top
#5
Hallöchen,

@all,
man nehme eine neue Datei, füge dort den Code ein, kommentiere die On Error's aus, ändert im Code auf Tabelle1 oder benennt das Blatt um, und wundert sich ...
Dann trägt man irgendwo im Bereich was ein, löscht das wieder, führt das Makro nochmal aus, und siehe da ...

@TE,
die On Error's sind korrekt. Geht es denn nicht weiter? Sollte es jedenfalls.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
Hallo schauan,

also wenn dieser Bereich voll ist und keine Leeren Zellen enthält kommt eben die oben genannte Fehlermeldung.
Bei klicken auf Debbug wird folgende Zeile Gelb markiert: Set rng = Sheets("Retourenliste").Range("A11:A710").SpecialCells(xlCellTypeBlanks)

Danke & viele Grüße
Top
#7
Hallöchen,

mit Deinem On Error ... sollte, wie auch schon von Ralf gesagt, kein Fehler kommen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#8
Guten Morgen zusammen,

ich habe den Fehler gefunden.

Ich hatte unter Alt+F11 > Extras > Optionen > Unterbrechen bei Fehlern den Punkt: "Bei jedem Fehler" markiert.
Nach dem setzen des Punktes "in Klassenmodul" funktioniert es wieder. 

Trotzdem Danke für eure Hilfe!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste