Herbers Excel-Forum - das Archiv

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
Excel-Beispiele zum Thema "Zeilen löschen wenn mit VBA"
Zeilenhöhe in cm festlegen Summe gefilterter Zeilen
Zeilenumbruch Leere Zeilen löschen
Spalten/Zeilen aus- und einblenden Zeilenumbruch in Formel erzwingen
Zeilen und Spalten über ein Drehfeld ein- und ausblenden Alle Kopf-/Fußzeilen-Festlegungen löschen
Fußzeilen beim Öffnen eintragen Zellinhalte zeilenweise sortieren