AW: gleiche Zeilen löschen nach Bedingung
17.12.2009 13:56:39
Tino
Hallo,
kannst ja mal testen.
Ich gehe davon aus, dass in der Tabelle2 die Namen in Spalte A stehen.
Eventuell die Tabellen im Code noch anpassen.
Sub Loeschen_Mit_Formel()
Dim oSH As Worksheet, iCalc As Integer
Dim MatrixTab As String
'Tabelle anpassen wo die Zeilen gelöscht werden sollen
Set oSH = Sheets("Tabelle2")
'Tabelle anpassen wo die Matrix mit ja und nein ist
MatrixTab = "Tabelle1"
With Application
iCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
With oSH.UsedRange
With .Columns(.Columns.Count).Offset(0, 1)
.FormulaR1C1 = _
"=IF(COUNTIF(" & MatrixTab & "!C1,RC1)>0,IF((VLOOKUP(RC1," & MatrixTab & "!C1:C2,2)=""JA"")*" & _
"(VLOOKUP(RC1," & MatrixTab & "!C1:C3,3)=""JA""),TRUE,ROW()),ROW())" 'entsprechende Formel
oSH.UsedRange.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlNo
On Error Resume Next
.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Delete
On Error GoTo 0
.EntireColumn.Delete
End With
End With
.ScreenUpdating = True
.Calculation = iCalc
End With
End Sub
Gruß Tino