Zeilen löschen wenn mit VBA

Bild

Betrifft: Zeilen löschen wenn mit VBA
von: hans
Geschrieben am: 22.04.2005 13:17:25
Hallo liebe Excelfreunde,
habe die folgende Tabelle: Aus dieser Tabelle sollen in einem Vorgang die Datensätze gelöscht mit OP werden, falls der Vorgang sowohl den Status OP als auch OK hat. In der unten stehenden Tabelle müssten die OP-Datensätze aus den Vorgängen 1 und 4 gelöscht werden.
Weiß jemand hierzu eine VBA Lösung??
Vielen Dank im voraus
HP

Vorgang Status
1 OP
1 OP
1 OP
1 OP
1 OK
1 OK
1 OK
1 OK
2 OK
2 OK
3 OP
3 OP
4 OP
4 OP
4 OK
4 OK

Bild

Betrifft: AW: Zeilen löschen wenn mit VBA
von: Gunnar
Geschrieben am: 22.04.2005 13:22:14
https://www.herber.de/forum/messages/602069.html
Bild

Betrifft: AW: Zeilen löschen wenn mit VBA
von: hans
Geschrieben am: 22.04.2005 14:02:59
Hallo Gunnar,
ich hätte eine VBA Lösung. Weiß du wie es geht
Bild

Betrifft: AW: Zeilen löschen wenn mit VBA
von: Gunnar
Geschrieben am: 22.04.2005 14:15:23
https://www.herber.de/bbs/user/21511.xls
Bild

Betrifft: AW: Zeilen löschen wenn mit VBA
von: hans
Geschrieben am: 22.04.2005 14:45:12
hallo gunna,
sorry, aber ich habe es nicht verstanden. Wo ist denn hier ein VBA zu meinem Fall??
Viele Grüße
hans
Bild

Betrifft: AW: Zeilen löschen wenn mit VBA
von: ransi
Geschrieben am: 22.04.2005 19:39:43


      
hallo hans
ist zwar ganz schön holprig, aber versuch mal diesen ansatz.
für den bereich A2:A1000
es werden 2 hilfspalten benötigt die sich selber wieder  löschen.
Die liegen 
in C und D.
sorg also 
in deiner originaldatei dafür das dort nichts drin steht, oder pass den code auf andere spalten an.
Option 
Explicit

Public Sub t()
Dim L As Long
Application.Calculation = xlCalculationManual
For L = 1000 To 2 Step -1
    Range(
"C" & L) = Range("A" & L) & Range("B" & L)
    Range(
"D" & L).FormulaR1C1 = "=AND(COUNTIF(R2C3:R1000C3,RC[-3]&""OP"")>0,COUNTIF(R2C3:R1000C3,RC[-3]&""OK"")>0,RC[-2]=""OP"")"
Next
Application.Calculate
For L = 1000 To 2 Step -1
    
If Range("D" & L).Value = True Then
        Rows(L).Delete
    Else:
        Range(
"D" & L).ClearContents
        Range(
"C" & L).ClearContents
    
End If
Next
Application.Calculation = xlCalculationAutomatic
End Sub
ransi 


Bild

Betrifft: AW: Zeilen löschen wenn mit VBA
von: WernerB.
Geschrieben am: 23.04.2005 16:34:21
Hallo Hans,
wie gefällt Dir das?

Sub Hans()
Dim SuBe As Range, _
    s As String, fiAd As String, _
    i As Long, laR1 As Long, laR2 As Long
    Application.ScreenUpdating = False
    laR1 = Cells(Rows.Count, 2).End(xlUp).Row
    For i = laR1 To 1 Step -1
      If Cells(i, 2).Value = "OP" Then
        s = Cells(i, 1).Text
        laR2 = Cells(Rows.Count, 2).End(xlUp).Row
        With Range("A1:A" & laR2)
          Set SuBe = .Find(What:=s, After:=Range("A" & laR2), LookAt:=xlWhole)
          If Not SuBe Is Nothing Then
            If SuBe.Offset(0, 1).Text = "OK" Then
              Rows(i).Delete
            Else
              fiAd = SuBe.Address
              Do
                Set SuBe = .FindNext(SuBe)
                If Not SuBe Is Nothing Then
                  If SuBe.Address <> fiAd Then
                    If SuBe.Offset(0, 1).Text = "OK" Then
                      Rows(i).Delete
                      Exit Do
                    End If
                  End If
                End If
              Loop While Not SuBe Is Nothing And SuBe.Address <> fiAd
            End If
          End If
        End With
        Set SuBe = Nothing
      End If
    Next i
    Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen löschen wenn mit VBA"