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.

VBA Fehler 1004 Delete Methode konnte niht ausgeführt werden beim Löschen von Zeilen
#1
Hallo, Ich habe folgenden Code mit dem ich alle Zeilen löschen möchte die in Spalte D den Teilstring "TEST" enthalten. Das funktioniert in meiner Beispieldatei ohne Probleme, in meiner eigentlichen Datei mit mehr Tabellenblättern und Makros kommt allerdings die Fehlermeldung "Laufzeitfehler 1004 die Delete-Methode des Range Objektes konnte nicht ausgeführt werden". Ich habe im Netz ähnliche Probleme von anderen Usern gefunden, leider hat keine der Lösungen geholfen. Das Makro wird über einen Button aktiviert. Freue mich über jeden Tipp.


Code:
Sub Musterportfolien_Summenzeilen_Loeschen()

Dim rngSuchbereich As Range, rngGefunden As Range, rngLoeschen As Range, strSuchbegriff As String, strErste As String

Set rngSuchbereich = ThisWorkbook.ActiveSheet.Columns("D")
Set rngGefunden = rngSuchbereich.Find(what:="TEST", LookIn:=xlValues, lookat:=xlPart, MatchCase:=True)
If Not rngGefunden Is Nothing Then
   Set rngLoeschen = rngGefunden
   strErste = rngGefunden.Address
   Do
       Set rngLoeschen = Union(rngLoeschen, rngGefunden)
       Set rngGefunden = rngSuchbereich.FindNext(rngGefunden)
       If rngGefunden Is Nothing Then Exit Do
   Loop Until rngGefunden.Address = strErste
   rngLoeschen.EntireRow.Delete
End If

End Sub
Antworten Top
#2
Moin!
Blattschutz gesetzt?
Am Rande:
Warum setzt Du keinen Filter und löscht die sichtbaren Zeilen unterhalb der Überschriftenzeile?

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • clemetti
Antworten Top
#3
Hey, 

Blattschutz ist nicht gesetzt. Grund ist, dass ich am Ende gerne nach mehren Begriffen (MUSTER, TEST, etc) sowie nach leeren Zellen suchen und alle löschen möchte. 

Begonnen hatte ich mit einem bereits vorhandenen Code der in Spalte A (enthält nur einzelnen Buchstaben) nach "S" sucht, jedoch konnte ich diesen nicht auf die Suche nach Teilstrings anpassen. Außerdem möchte ich die Suche in Spalte D durchführen, da dort die Zellen immer leer sind wenn in Spalte A ein "S" steht und manchmal eben die Teilstrings MUSTER/TEST vorkommen die ebenfalls gelöscht werden sollen. 


Code:
Sub Summenzeilen_Löschen()
Dim varList As Variant
Dim i As Integer, l As Integer
Dim lngEnde As Long
Dim Col1
Dim Suchtext As String
 
Suchtext = "S" ' Löscht alle Zeilen die in Spalte A (RowIdentifier) ein "S" enthalten
 
lngEnde = ActiveSheet.Range("A6000").End(xlUp).Row ' letzte gefüllte Zelle in Spalte A
For l = lngEnde To 2 Step -1 ' rückwärts bis  Zeile 2
    varList = Split(ActiveSheet.Cells(l, 1).Text, " ")
    For i = LBound(varList) To UBound(varList)
    If Trim(varList(i)) = Suchtext Then
      ActiveSheet.Rows(l).Delete Shift:=xlUp
    End If
    Next i
Next l
 
Suchtext = "Z" ' Löscht alle Zeilen die in Spalte A (RowIdentifier) ein "Z" enthalten
 
lngEnde = ActiveSheet.Range("A6000").End(xlUp).Row ' letzte gefüllte Zelle in Spalte A
For l = lngEnde To 2 Step -1 ' rückwärts bis  Zeile 2
    varList = Split(ActiveSheet.Cells(l, 1).Text, " ")
    For i = LBound(varList) To UBound(varList)
    If Trim(varList(i)) = Suchtext Then
      ActiveSheet.Rows(l).Delete Shift:=xlUp
    End If
    Next i
Next l
 
End Sub

Grüße 
Clemens
Antworten Top
#4
Mahlzeit !
Bin mir nicht sicher, aber kann es sein, dass da noch ein
"Shift:=xlUp"  fehlt ?

Gruss Igel
Ich kann nicht alles wissen,
aber vieles lernen ! 19
[-] Folgende(r) 1 Nutzer sagt Danke an Igelbauer für diesen Beitrag:
  • clemetti
Antworten Top


Gehe zu:


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