Makro zum Sortieren?

Hallo, mein aufgezeichnetes Makro (siehe unten) funktioniert leider nur auf dem Tabellenblatt, auf dem ich es aufgezeichnet habe. Wie schreibe ich es um, damit es auf allen Tabellenblättern funktioniert?
Markiert werden muss immer der Bereich A5 bis D49, sortiert werden Spalte A nach Datum aufsteigend. Die Daten haben keine Überschriften.
Danke im Voraus für die Hilfe

Range(„A5:smiley:49“).Select
ActiveWorkbook.Worksheets(„Tabelle1“).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(„Tabelle1“).Sort.SortFields.Add Key:=Range( _
„A5:A49“), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets(„Tabelle1“).Sort
.SetRange Range(„A5:smiley:49“)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Hallo Mondstein,

Hallo, mein aufgezeichnetes Makro (siehe unten)

? das ist der aufgezeichnete Code? Ui, ich vermisse da irgendwie die Selects, Selections :smile:

Aber okay, habe mit XL2007 noch nie was aufgezeichnet.

Wie auch immer, gib bitte immer die XL-Version mit an wenn du eine Frage stellst.

funktioniert
leider nur auf dem Tabellenblatt, auf dem ich es aufgezeichnet
habe. Wie schreibe ich es um, damit es auf allen
Tabellenblättern funktioniert?

Nachfrage, soll der Code das jeweils aktive Blatt sortieren oder alle Blätter durchgehen und sortieren?

PS: @Alle, weiß jmd. was das eigentlich ist, xlPinYin bzw. xlStroke, die man in XL2000 bei SortMethod auswählen/angeben kann?

Gruß
Reinhard

Grüezi Mondstein

Hallo, mein aufgezeichnetes Makro (siehe unten) funktioniert
leider nur auf dem Tabellenblatt, auf dem ich es aufgezeichnet
habe. Wie schreibe ich es um, damit es auf allen
Tabellenblättern funktioniert?

Markiert werden muss immer der Bereich A5 bis D49, sortiert
werden Spalte A nach Datum aufsteigend. Die Daten haben keine
Überschriften.

Nimm anstelle der expliziten Referenzierung einfach ‚Activesheet‘ und lege die Parameter entsprechend fest:

Public Sub tr()
 With ActiveSheet.Sort
 .SortFields.Clear
 .SortFields.Add Key:=Range("A5"), \_
 SortOn:=xlSortOnValues, \_
 Order:=xlAscending, \_
 DataOption:=xlSortNormal
 .SetRange Range("A5:smiley:49")
 .Header = xlNo
 .MatchCase = False
 .Orientation = xlTopToBottom
 .SortMethod = xlPinYin
 .Apply
 End With
End Sub

@Reinhard
Hier ein Auszug aus der Online-Hilfe zu den SortMathod-Parametern:

xlPinYin
Phonetische chinesische Sortierreihenfolge für Zeichen. Dies ist der Standardwert.

xlStroke
Sortierung nach der Anzahl der Striche in jedem Zeichen.

Der Recorder zeichnet das halt einfach auf, in unserem Sprachraum wird dieser Parameter seltenst verwendet.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Danke Thomas, das hat bestens funktioniert. Genau so wollte ich es haben.

OT xlPinYin und xlStroke

@Reinhard
Hier ein Auszug aus der Online-Hilfe zu den
SortMathod-Parametern:

xlPinYin
Phonetische chinesische Sortierreihenfolge für Zeichen. Dies
ist der Standardwert.

xlStroke
Sortierung nach der Anzahl der Striche in jedem Zeichen.

Grüezie Frischling :smile:)),

aha, bei XL2000 wird das nicht erklärt.

Der Recorder zeichnet das halt einfach auf, in unserem
Sprachraum wird dieser Parameter seltenst verwendet.

„verwendet“ irritiert mich, würde es denn im deutschen Sprachraum einen Unterschied machen ob ich da XlPinYin oder xlStroke angebe?
Wird doch so oder so ignoriert von Vba, oder nicht?

Und, du bist wie geschaffen für einen Mod. Das hat mit deinen excellenten Excelfähigkeiten gar nix zu tun.
Nein, du kannst sachlich bleiben und auch wenn sich mal jmd. beschwert warum du seinen Beitrag gelöscht hast kannst du ihm geduldig mehrmals erläutern warum.

Und genau das muß m.E. ein Mod können, völlig (Eigen-) emotionslos einen evtl. Konflikt im Brett wo er Mod ist „lösen“.

Naja, in den beiden Brettern kommt sowas sehr seltenst vor. Wie meist in Fachbrettern. Gelegentlich mußt du mal eine Beitragsfokge verschieben weil ein gewisser Reinhard im Antwortbeitrag den Betreff wählt, @Mod, falsches Brett.
Aber nix schlimmes, gibt wohl ein deutlich besseres Brett für die eigentliche Anfrage.

Gelegentlich mußte auch einen Beitrag eines gewissen Reinhard löschen *grins*
Dann hat er wieder einen CP ertappt und kann es sich einfach nicht verkneifen dies zu kommentieren um Andere hier vor sinnloser Arbeit zu warnen :smile:
Aber kein Akt wenn du mich dann löschst. Das Thema CP habe ich schon mehrmals mit dem Team und Roland diskutiert und beschwer mich nicht über die Löschung.

Leben und Leben lassen ist die Devise *denk*

Willkommen als Mod :smile:

Gruß
Reinhard

Grüezi Reinhard

xlPinYin
Phonetische chinesische Sortierreihenfolge für Zeichen. Dies
ist der Standardwert.

xlStroke
Sortierung nach der Anzahl der Striche in jedem Zeichen.

aha, bei XL2000 wird das nicht erklärt.

Der Recorder zeichnet das halt einfach auf, in unserem
Sprachraum wird dieser Parameter seltenst verwendet.

„verwendet“ irritiert mich, würde es denn im deutschen
Sprachraum einen Unterschied machen ob ich da XlPinYin oder
xlStroke angebe?
Wird doch so oder so ignoriert von Vba, oder nicht?

xlPinYin
wird einfach als Standard verwendet wenn nichts weiter definiert ist.
Ob das in xl2000 auch schon so der Fall ist/war habe ich nicht getestet.
Jedenfall dürfte der Code so wie er hier steht unter xl2000 nicht laufen weil in xl2007 neu hinzugekommene Objekte verwendet werden, die ‚damals‘ noch nicht geboren waren.

Gelegentlich mußte auch einen Beitrag eines gewissen Reinhard
löschen *grins*
Dann hat er wieder einen CP ertappt und kann es sich einfach
nicht verkneifen dies zu kommentieren um Andere hier vor
sinnloser Arbeit zu warnen :smile:

Die Arbeit in diesem speziellen DP hält sich in engen Grenzen *find*, daher lasse ich das mal so stehen :wink:

Willkommen als Mod :smile:

Danke für die netten Worte - ich hoffe, den hohen Erwartungen zu entsprechen.
(ansonsten einfach beim Team einen Antrag auf Absetzung stellen… :wink:)

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Thomas,

xlPinYin
wird einfach als Standard verwendet wenn nichts weiter
definiert ist.
Ob das in xl2000 auch schon so der Fall ist/war habe ich nicht
getestet.

zumindest wird es nicht aufgezeichnet wenn man „Sort“ aufzeichnet in XL2000.

Ich habe jetzt nicht getestet, aber ich gehe einfach davon aus, ich kann da xlPinYin oder xlStroke benutzen, beides wird ignoriert wenn ich die deutsche Sprache eingestellt habe.

Jedenfall dürfte der Code so wie er hier steht unter xl2000
nicht laufen weil in xl2007 neu hinzugekommene Objekte
verwendet werden, die ‚damals‘ noch nicht geboren waren.

Natürlich Richtig.

Die Arbeit in diesem speziellen DP hält sich in engen Grenzen
*find*, daher lasse ich das mal so stehen :wink:

*lächel* Ich konnte nicht widerstehen über diese goldene Brücke zu gehen … Aber ich habe sehr gegrinst, an sich immer noch, als ich den Betreff im Textbrett schrieb :smile:)

Willkommen als Mod :smile:

Danke für die netten Worte -

Gerne.

(ansonsten einfach beim Team einen Antrag auf Absetzung
stellen… :wink:)

Auf diese Idee kam ich in den über 10 Jahren hier noch nie. Und ich bin sicher in Zukunft auch nicht.
Grad in meinen Lieblingsbrettern komme ich mit den dortigen Mods bestens aus. Genauer, es gäbe auch gar keinen Grund dafür weil sie nicht sichtbar sind. Einfach weil nix passiert weshalb sie als Mod einschreiten müßten.

Beim Mitlesen im ALK-Brett kriege ich mit daß in „Streitvorprommiert“-Brettern daß User anders empfinden und erleben. Ob korrekt oder nicht, sie beschweren sich dann im ALK-Brett.
Da kann ich nicht mitreden weil ich „diese“ Bretter nicht besuche.

Gruß
Reinhard

Grüezi Reinhard

xlPinYin
wird einfach als Standard verwendet wenn nichts weiter
definiert ist.
Ob das in xl2000 auch schon so der Fall ist/war habe ich nicht
getestet.

zumindest wird es nicht aufgezeichnet wenn man „Sort“
aufzeichnet in XL2000.

Ich habe jetzt nicht getestet, aber ich gehe einfach davon
aus, ich kann da xlPinYin oder xlStroke benutzen, beides wird
ignoriert wenn ich die deutsche Sprache eingestellt habe.

Nein, ich denke vielmehr, dass bereits .SortMethod (und vorher noch andere Objekte wie .SortFields) vom Compiler angemosert werden.

Das Ganze kann eben nicht abwärts-Kompatibel sein - der Code aus xl2000 aber funktioniert zum Sortieren auch noch in xl2007 :smile:

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

PS:
Unter ‚ALK‘ habe ich mir schon beinahe etwas hochprozentiges vorgestellt - bin aber inzwischen fündig geworden :wink: