AW: 2 gleiche Zellen, Zeile ausblenden bzw. löschen
09.07.2013 21:53:43
fcs
Hallo Burghard,
hier 2 entsprechende Makros. Die letzte Zeile wird automatisch aus dem verwendeten Zellbereich ermittelt.
Für das Ausblenden könnte man natürlich auch die Hilfsspalte mit Formel anlegen und den Autofilter verwenden.
Gruß
Franz
Sub E_gleich_J_ausblenden()
Dim wks As Worksheet
Dim Zeile_L As Long, Spalte_L As Long
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
'Alles einblenden
.Rows.Hidden = False
.Columns.Hidden = False
Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
Spalte_L = .UsedRange.Column + .UsedRange.Columns.Count
With .Range(.Cells(2, Spalte_L), .Cells(Zeile_L, Spalte_L))
.FormulaR1C1 = "=if(RC5 = RC10,True,"""")"
.Calculate
On Error Resume Next
.SpecialCells(xlCellTypeFormulas, xlLogical).EntireRow.Hidden = True
.EntireColumn.Delete
End With
End With
Application.ScreenUpdating = True
End Sub
Sub E_gleich_J_loeschen()
Dim wks As Worksheet
Dim Zeile_L As Long, Spalte_L As Long
If MsgBox("Zeilen mit identischen Werten in Spalten E und J löschen", _
vbQuestion + vbOKCancel, "Zeilen löschen") = vbCancel Then Exit Sub
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
'Alles einblenden
.Rows.Hidden = False
.Columns.Hidden = False
Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
Spalte_L = .UsedRange.Column + .UsedRange.Columns.Count
With .Range(.Cells(2, Spalte_L), .Cells(Zeile_L, Spalte_L))
.FormulaR1C1 = "=if(RC5 = RC10,True,"""")"
.Calculate
On Error Resume Next
.SpecialCells(xlCellTypeFormulas, xlLogical).EntireRow.Delete shift:=xlShiftUp
.EntireColumn.Delete
End With
End With
Application.ScreenUpdating = True
End Sub