AW: dann dreh es um!
11.07.2013 08:19:39
Klaus
Hallo Sylvio,
du musst auch den GANZEN Rekordercode mitnehmen! Der Rekorder hat doch bestimmt gesagt: Sheets("Xx").Activate, Range("A1:A16").select .... und so weiter. Wenn du das alles einfach ignorierst ist doch klar, dass nichts bei rauskommt. In deinem Beispiel wurde drei mal auf die "selection" sortiert, es war aber Codeseitig gar keine Selection vorhanden!! Sprich, der Code hat nur zufällig funktioniert.
Ich war mal so frei, das ganze von drei Sortier-Codes auf einen runterzubrechen, der in einer Schleife über die Blätter läuft.
'Sortieren Baustellen
Dim wks As Worksheet
Dim fRow As Long
Dim lRow As Long
For Each wks In Sheets(Array("Baustellen", "BaustellenA", "Arbeiten"))
With wks
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
fRow = .Cells(lRow, 1).End(xlUp).Row
.Range(.Cells(fRow, 1), .Cells(lRow, 1)).Sort _
Key1:=.Cells(fRow, 1), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom, DataOption1 _
:=xlSortNormal
End With
End With
Next wks
Es wäre warscheinlich besser fürs Verständniss, pro Blatt einen eigenen Sortiercode zu benutzen. Das währe zwar länger und langsamer, aber intuitiver verständlich. Allerdings habe ich den Eindruck, dass du, sorry, dich null dafür interessierst was dein Code macht und einfach irgendwas per Copy Paste in dein Blatt haust ohne auch nur einen Buchstaben zu hinterfragen. Von daher pfeiff ich aufs einfach-halten und erklären und geb dir gleich den optimierten Code mit Schleife und variablen Sortierbedingungen.
Grüße,
Klaus M.vdT.