Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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.
Antworten 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
Antworten Top
#3
(09.12.2020, 11: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)
Antworten 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
Antworten 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)
Antworten 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
Antworten 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)
Antworten 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!
Antworten Top


Gehe zu:


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