Sortieren, Range und meine Unfähigkeit
05.03.2015 20:47:48
P-Quest
ich plage mich gerade mit einer Sortierung ab und sthe mit der Syntax auf Kriegsfuß. Vielleicht kann mir jemand auf die Sprünge helfen?
Hier mein VBA Code
Sub DupsLoeschen()
'Löscht evtl. vorhandene Duplikate aus der Gesamtliste
'Es bleibt immer der ältere Eintrag erhalten
Dim rngGesamt As Range
Dim lastRow As Long 'letzte Zeile vor dem Löschen
Dim lastRowNeu As Long 'letzte Zeile nach dem Löschen
Dim wsGesamt As Worksheet 'Tabellenblatt Gesamt
Set wsGesamt = ThisWorkbook.Sheets("Gesamtliste")
lastRow = wsGesamt.Cells(wsGesamt.Rows.Count, 1).End(xlUp).Row
With wsGesamt
Set rngGesamt = .Range(.Cells(1, 1), .Cells(lastRow, 11))
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range(Cells(2, 2), Cells(lastRow, 2)), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.Sort.SortFields.Add Key:=Range(Cells(2, 11), Cells(lastRow, 11)), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
With ActiveSheet.Sort
.set Range:=rngGesamt
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
.rngGesamt.RemoveDuplicates Columns:=Array(2, 5, 6, 7), Header:=xlYes
End With
lastRowNeu = wsGesamt.Cells(wsGesamt.Rows.Count, 1).End(xlUp).Row
End Sub
Ich wollte es elegant machen und mit der Range arbeiten, aber scheinbar mögen wir uns nicht.Gruß,
Peter