Sortieren mit VBA

02/01/2010 - 09:29 von Uli Schoch | Report spam
Hallo
Ich habe in einer Tabelle Adressen, welche ich nach der Spalte C mit einem
Makro sortieren will. Wenn ich das "von Hand" mache und dabei einen Makro
aufzeichne, ergibt das folgenden Code:

Cells.Select
ActiveWorkbook.Worksheets("Sortierte").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sortierte").Sort.SortFields.Add Key:=Range( _
"C2:C45"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=
_
xlSortNormal
With ActiveWorkbook.Worksheets("Sortierte").Sort
.SetRange Range("A1:O45")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Das funkioniert auch so. Ich möchte aber die Tabelle durch Anfügen von neuen
Adressen erweitern können. Dann stimmen aber Range("C2:C45") und
Range("A1:O45") nicht mehr. Wie kann ich die "variabel" machen, also so,
dass genau soviele Zeilen einbezogen werden, wie es Adressen hat? Benutze
Excel 2007)

Gruss
Uli
 

Lesen sie die antworten

#1 Dietmar Vollmeier
02/01/2010 - 09:51 | Warnen spam
Grüß dich Uli!

*Uli Schoch* schrieb am 02.01.2010 um 9:29 Uhr...
Das funkioniert auch so. Ich möchte aber die Tabelle durch Anfügen von neuen
Adressen erweitern können. Dann stimmen aber Range("C2:C45") und
Range("A1:O45") nicht mehr. Wie kann ich die "variabel" machen, also so,
dass genau soviele Zeilen einbezogen werden, wie es Adressen hat?



Die letzte Zelle in einer Spalte ermittelst du mit

Dim lRow as Long
lRow = Range("C" & Rows.Count).End(xlUp).Row

und weiter fürs Sortieren

.SetRange Range("A1:O" & lRow)

HTH
Servus | Jedes Stück, das mit NEU und/oder VERBESSERT
Didi | beschriftet ist, ist es nicht.

Ähnliche fragen