AW: Zeilen löschen über VBA
15.01.2016 10:43:14
UweD
Hallo
hier ein Makro.
Das Sortieren kann als erstes erfolgen. Das erleichtert dann auch die Abarbeitung :-)
Option Explicit
Sub TT()
On Error GoTo Fehler
Dim TB, i%, LR&
Set TB = ActiveSheet
Application.ScreenUpdating = False
With TB
LR = .Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte A
'sortieren
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A:A"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("C:C"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("Z:Z"), SortOn:=xlSortOnValues, _
Order:=xlDescending, DataOption:=xlSortNormal
.Sort.SetRange Range("A1:Z" & LR)
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
For i = LR To 2 Step -1
If .Cells(i, 2) = "" Then
.Rows(i).Delete xlUp
i = i - 1
End If
Do Until WorksheetFunction.CountIfs(.Columns(1), .Cells(i, 1), .Columns(3), .Cells( _
i, 3)) = 1
.Rows(i).Delete xlUp
i = i - 1
Loop
If .Cells(i, 1) .Cells(i - 1, 1) Then .Rows(i).Insert
Next
End With
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Gru0ß UweD