HERBERS Excel-Forum - das Archiv
Sortieren
Andreas

hallo zusammen,
hab folgenden code in einer anwendung unter excel2003 tadellos laufen.
nun funktioniert dieser allerdings auf excel2000 nicht mehr.
was ist zu ändern?


Sub Sortiert_BeiKlick()
ActiveSheet.Unprotect
Range("B11:u2000").Select
Selection.Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveSheet.Protect
Range("B12").Select
End Sub


grüße a*

AW: Sortieren
Hajo_Zi

Hallo Andreas,
Excel ist ein vielseitiges Programm und man kann viele Probleme damit lösen. Jede positive Seite hat aber auch negative Aspekte - einer davon ist im Makrorecorder enthalten.
Die Bücher, die es zu Excel VBA gibt, erklären viele Funktionen, aber ich habe bisher nur in einem gelesen, dass der vom Makrorecorder aufgezeichnete Code bereinigt werden muss.
Der Makrorecorder zeichnet alle Aktionen auf, u. a. auch das Auswählen einer Zelle oder eines eingebetteten Objektes (Bild, Diagramm, Zeichnungsobjekt usw.) – dabei wird generell Select und Activate aufgezeichnet. Diese Befehle sind in VBA zu 99,9% nicht notwendig. Sie lassen den Bildschirm flackern und senken die Geschwindigkeit bei der Ausführung des Codes. Man sollte also schon von Beginn an bei der Programmierung darauf achten, solche Befehle zu vermeiden. Meine Erfahrung mit dem Vorsatz: „Das mache ich später“ ist, man schreibt das Programm später meist komplett neu. Also kostest es nicht nur Rechnerzeit sondern auch Deine Zeit und ist Dir Deine Zeit so wenig Wert?
Zum Vergleich mit und ohne Select schau Dir auch mal diese Beispielarbeitsmappe an: mit und ohne select
Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.
2000 kennt nicht DataOption löschen


Sub Sortiert_BeiKlick()
ActiveSheet.Unprotect
Range("B11:u2000").Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveSheet.Protect
End Sub



DataOption -> gibts in xl2000 noch nicht ! oT
Matthias

AW: Sortieren
Reinhard

Hi Andreas,
nachfolgend was in XL200 geht.
Gruß
Reinhard
Sort-Methode
Sortiert einen PivotTable-Bericht, einen Bereich bzw. den aktiven Bereich (wenn nur eine Zelle angegeben wird).
Syntax
Ausdruck.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod)
Ausdruck Erforderlich. Ein Ausdruck, der ein Range-Objekt zurückgibt.
Key1 Variant optional. Das erste Sortierfeld, als Text (ein PivotTable-Feld oder Bereichsname) oder als Range-Objekt (z. B. "Abtlg" oder Cells(1, 1)).
Order1 Variant optional. Zulässig ist eine der folgenden XlSortOrder-Konstanten: xlAscending oder xlDescending. Mit xlAscending wird Key1 in aufsteigender Reihenfolge sortiert. Mit xlDescending wird Key1 in absteigender Reihenfolge sortiert. Die Standardkonstante ist xlAscending.
Key2 Variant optional. Das zweite Sortierfeld, als Text (ein PivotTable-Feld oder Bereichsname) oder als Range-Objekt. Falls dieses Argument ausgelassen wird, gibt es kein zweites Sortierfeld. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.
Type Variant optional. Gibt an, welche Elemente sortiert werden sollen. Zulässig ist eine der folgenden XlSortType-Konstanten: xlSortLabels oder xlSortValues. Verwenden Sie dieses Argument nur beim Sortieren von PivotTable-Berichten.
Order2 Variant optional. Zulässig ist eine der folgenden XlSortOrder-Konstanten: xlAscending oder xlDescending. Verwenden Sie xlAscending, um Key2 in aufsteigender Reihenfolge zu sortieren. Verwenden Sie xlDescending, um Key2 in absteigender Reihenfolge zu sortieren. Die Standardkonstante ist xlAscending. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.
Key3 Variant optional. Das dritte Sortierfeld, als Text (ein Bereichsname) oder als Range-Objekt. Falls dieses Argument ausgelassen wird, gibt es kein drittes Sortierfeld. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.
Order3 Variant optional. Zulässig ist eine der folgenden XlSortOrder-Konstanten: xlAscending oder xlDescending. Verwenden Sie xlAscending, um Key3 in aufsteigender Reihenfolge zu sortieren. Verwenden Sie xlDescending, um Key3 in absteigender Reihenfolge zu sortieren. Die Standardkonstante ist xlAscending. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.
Header Variant optional. Legt fest, ob die erste Zeile Überschriften enthält oder nicht. Zulässig ist eine der folgenden xlGuess-Konstanten: xlGuess, xlNo oder xlYes. Mit xlYes enthält die erste Zeile Überschriften (die nicht sortiert werden). Mit xlNo gibt es keine Überschriften (der gesamte Bereich wird sortiert). Mit xlGuess übernimmt Microsoft Excel die Entscheidung, ob eine Überschrift vorhanden ist und falls vorhanden, wo sie sich befindet. Die Standardkonstante ist xlNo. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.
OrderCustom Variant optional. Bei diesem Argument handelt es sich um einen ganzzahligen, bei 1 beginnenden Offset für die Liste der benutzerdefinierten Sortierreihenfolgen. Wird OrderCustom ausgelassen, wird 1 (Standard) verwendet.
MatchCase Variant optional. True, wenn beim Sortieren Groß- und Kleinschreibung berücksichtigt wird. False, wenn Groß- und Kleinschreibung nicht berücksichtigt wird. Verwenden Sie dieses Argument beim Sortieren von PivotTable-Berichten nicht.
Orientation Variant optional. Hat das Argument den Wert xlSortRows, so wird von oben nach unten sortiert (zeilenweise). Ist das Argument xlSortColumns, so erfolgt die Sortierung von links nach rechts (spaltenweise).
SortMethod Variant optional. Der Sortiertyp. Kann eine der folgenden XlSortMethod-Konstanten sein: xlPinYin oder xlStroke. Einige dieser Konstanten stehen Ihnen, abhängig von der ausgewählten oder installierten Sprachunterstützung (z. B. Deutsch), möglicherweise nicht zur Verfügung.
Anmerkungen
Die Einstellungen für Header, Order1, Order2, Order3, OrderCustom und Orientation werden bei jeder Verwendung dieser Methode gespeichert. Wenn Sie für diese Argumente keine Werte angeben, werden beim nächsten Aufruf der Methode die gespeicherten Werte verwendet. Um Probleme zu vermeiden, legen Sie diese Argumente bei jeder Verwendung dieser Methode explizit fest.

AW: Sortieren
Andreas

hallo reinhard,
danke für die umfangreiche antwort.
kannst du mir auch einen lösungsvorschlag speziell für meinen code bieten?
wär klasse!
gruß

AW: Sortieren
Reinhard

Hi Andreas,
nichts leichter als das, schau mal hier: https://www.herber.de/forum/messages/976747.html :-)
Gruß
Reinhard

AW: Sortieren
Andreas

DANK!
;-)
a*