AW: Ein erster Versuch ...
06.08.2015 21:20:43
Daniel
Hi
sortieren dann so, das ist allerdings noch die alte schreibweise, wie sie bis 2003 verwendet wurde.
die neue, welcher der Recorder aufzeichnet ist mir zu aufwendig.
Ein Fehler bei dir ist die Range, du hast beim zweiten Cells die Spaltennummer vergessen:
so gehts am schluss:
Range(Cells(azn, 1), Cells(azn + 2 * anzahl - 1, hsp)).Sort _
key1:=Cells(azn, hsp), _
order1:=xlAscending, _
Header:=xlNo
Columns(hsp).ClearContents
Prinzipell gefällt mir das schon mal ganz gut, nur das mit der Schleife ist suboptimal.
du solltest versuchen, Zellen nie einzeln zu bearbeiten, sondern immer als Block, beispielsweise durch das verwenden von Formeln. Hier würde sich die Funktion ZEILE() anbieten, um die Zeilennummer zu ermitteln:
Sub test()
hsp = 4 'HilfsSpaltenNr
azn = 2 'AnfangsZeilenNr
'lzn Letzte ZeilenNr
With ActiveSheet.UsedRange
lzn = Columns(1).Find(what:="?*", lookat:=xlWhole, LookIn:=xlValues, Searchdirection:= _
xlPrevious).Row
End With
anzahl = lzn - azn + 1 'anzahl = echte Zeilen
With Range(Cells(azn, hsp), Cells(lzn, hsp))
.FormulaLocal = "=Zeile()"
.Copy
With .Resize(.Rows.Count * 2)
.PasteSpecial xlPasteValues
.EntireRow.Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlNo
.ClearContents
End With
End With
End Sub
Gruß Daniel