Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Makro soll löschen
#1
Hallo,

ich suche folgenden Fehler:

Das Makro vergleicht, ob verschiedene Kriterien erfüllt sind,
wenn diese erfüllt sind, soll die Zeile gelöscht werden.

mit .entire.row.delete klappt es nicht, wie lautet die richtige Anweisung in folgendem Makro:

Sub Neu772()
    Dim LR As Long, i As Long
    Application.ScreenUpdating = False
   
    With Sheets("Testblatt")
        If .FilterMode Then .ShowAllData ' Autofilter alle
       
        LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
       
        For i = 4 To LR
            If .Cells(i, 2) = "772" Then
               
                If InStr(.Cells(i, 4), "Bar.") > 0 Or InStr(.Cells(i, 4), "Blo.") > 0 _
                    Or InStr(.Cells(i, 4), "H-B.M.") > 0 Then
                       
                        If InStr(.Cells(i, 6), "Bar.") > 0 Or InStr(.Cells(i, 6), "Blo.") > 0 _
                            Or InStr(.Cells(i, 6), "H-B.M.") > 0 Then


                                .Cells(i, 2) = entire.row.delette
                        End If
               
                End If
               
            End If
        Next
    End With
    Application.ScreenUpdating = True
End Sub


Kann mir jemand helfen?

Das Makro funktioniert, bis auf, dass er die gefunden Zeilen nicht löscht.

Vielen Dank im Voraus.
Andreas
Top
#2
Hallo,

zum Löschen von Zeilen muss die Schleife von unten nach oben  laufen.

Also: For i = LR To 4 Step -1
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • ari-2001
Top
#3
Hallo Andreas, :19:

Code:
.Cells(i, 2).EntireRow.Delete

Und dreh die Schleife - wie von Klaus-Dieter vorgeschlagen - um. :21:
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • ari-2001
Top
#4
Hallo ihr zwei,

vielen lieben Dank, funzt.

Mit dem Makro schaffe ich es jetzt ja, zu löschen, umzubenennen usw. usw.

Wie lautet denn die Anweisung, wenn er die gefundene Zeile KOPIEREN und gelb markieren soll?
Damit man die kopierten Zeilen besser finden kann?

Viele Grüße
Andreas
Top
#5
Hallo, :19:

kopieren...
Code:
.Cells(i, 2).EntireRow.Copy

färben...
Code:
.Cells(i, 2).EntireRow.Interior.ColorIndex = 28

Wobei ich nicht unbedingt ganze Zeilen färben würde - aber das wäre mal grundsätzlich die Antwort auf deine Fragen. :21:
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • ari-2001
Top


Gehe zu:


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