ich habe ein Makro aufgezeichnet, welches eine Tabelle sortieren soll. Wenn ich dieses nun ausführe bekomme ich einen Laufzeitfehler '1004' Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen.
Nachfolgend der VBA-Code:
Code:
ActiveWorkbook.Worksheets("Fehlerbericht").ListObjects("Fehlerberichte").Sort. _ SortFields.Clear ActiveWorkbook.Worksheets("Fehlerbericht").ListObjects("Fehlerberichte").Sort. _ SortFields.Add2 Key:=Range("Fehlerberichte[[#All],[FehlerID]]"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers With ActiveWorkbook.Worksheets("Fehlerbericht").ListObjects("Fehlerberichte"). _ Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
Komischerweise funkioniert das Makro auf einem anderen Tabellenblatt ohne Probleme. Die Namen der Bereiche und Tabellen habe ich mehrfach kontrolliert.
Code:
ActiveWorkbook.Worksheets("Keyuser").ListObjects("Namen").Sort. _ SortFields.Clear ActiveWorkbook.Worksheets("Keyuser").ListObjects("Namen").Sort. _ SortFields.Add2 Key:=Range("Namen[[#All],[Name]]"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers With ActiveWorkbook.Worksheets("Keyuser").ListObjects("Namen"). _ Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
Hat jemand einen sachdienlichen Hinweis? Dafür wäre ich sehr dankbar...
Hat leider nicht geholfen. Interessant ist, dass wenn ich im Anschluss des Fehlers auf Debuggen drücke und dann F5 (weiter) Excel die Liste sortiert, so wie gewünscht.
With ActiveWorkbook.Worksheets("Fehlerbericht").ListObjects("Fehlerberichte") .ListObjects("Tabelle1").Sort.SortFields.Clear .ListObjects("Tabelle1").Sort SortFields.Add2 Key:=.Range("Fehlerberichte[[#All],[FehlerID]]"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers End With
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
(10.07.2020, 12:14)schauan schrieb: sollte das Sortieren nicht unabhängig vom aktiven Blatt funktionieren?
Grundsätzlich schon, aber für den Sortierbereich ist das Blatt korrekt referenziert, während der Sortierschlüssel ohne Blattangabe (und damit das aktive Blatt) ist:
With ActiveWorkbook.Worksheets("Fehlerbericht").ListObjects("Fehlerberichte") .ListObjects("Tabelle1").Sort.SortFields.Clear .ListObjects("Tabelle1").Sort SortFields.Add2 Key:=.Range("Fehlerberichte[[#All],[FehlerID]]"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers End With
Hab ich getestet, leider kein Erfolg. Ich werd nicht schlau drauß, zumal der identische Code auf einem anderen Tabellenblatt/Makro funktioniert.
mal noch ergänzend - "Fehlerbericht" und "Fehlerberichte" sind zwei verschiedene Blätter oder zumindest Namen. .ListObjects("Tabelle1") funktioniert dann auch nur, wenn die Tabelle auf dem Blatt so heißt.
@snb, Error 438
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)