Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sortierbezug ungültig

Forumthread: Sortierbezug ungültig

Sortierbezug ungültig
09.09.2002 09:23:48
Torsten
Hallo Excel-Freunde,

ich habe in VBA eine Ungereimtheit:
Es sollen Daten auf einem Tabellenblatt sortiert werden. Ich habe ein Makro aufgezeichnet, dass einzeln abgerufen prima funktioniert.

ES sieht aus wie folgt:

Range("A2:L2000").Select
Selection.Sort Key1:=Range("L3"), Order1:=xlAscending, Key2:=Range("K3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom

Sobald ich jetzt das Makro aber in meinen umfangreichen Programmcode kopiere, kommt der Fehler:

"Laufzeitfehler 1004: Der Sortierbezug ist ungültig. Überprüfen Sie ..."

Der Fehler kommt, obwohl ich eigentlich nichts verändert habe. Lediglich zur Select-Zeile habe ich etwas hinzugefügt:

ActiveWorkbook.ActiveSheet.Range("A2:L2000").Select

Kann mir bitte jemand helfen, damit ich das Sortieren im Makro hinbekomme?

Vielen Dank!!!

Torsten

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hat sich erledigt :-) !!
09.09.2002 10:05:45
Torsten
ich musste nur noch den bezug mit Workbook/worksheet ergängzen
Anzeige
;
Anzeige

Infobox / Tutorial

Sortierbezug in Excel VBA korrekt nutzen


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und gehe zu dem Arbeitsblatt, das die zu sortierenden Daten enthält.

  2. Aktiviere den VBA-Editor mit der Tastenkombination ALT + F11.

  3. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)", wähle "Einfügen" und dann "Modul".

  4. Füge den folgenden Code ein:

    Sub SortiereDaten()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Worksheets("DeinTabellenblatt") ' Ändere "DeinTabellenblatt" in den Namen deines Arbeitsblatts
    
        ws.Range("A2:L2000").Sort Key1:=ws.Range("L3"), Order1:=xlAscending, _
                                  Key2:=ws.Range("K3"), Order2:=xlAscending, _
                                  Header:=xlYes
    End Sub
  5. Ändere den Namen des Arbeitsblatts in der Zeile Set ws = ThisWorkbook.Worksheets("DeinTabellenblatt") entsprechend deinem Dokument.

  6. Führe das Makro aus: Drücke F5 oder gehe zurück zu Excel und führe das Makro über die Entwicklertools aus.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Der Sortierbezug ist ungültig: Dieser Fehler tritt häufig auf, wenn der Sortierbereich oder der Bezug zum Arbeitsblatt nicht korrekt angegeben ist. Stelle sicher, dass du den Arbeitsblattnamen in deinen VBA-Code einfügst und die Range-Objekte entsprechend definierst.

  • Sortierung funktioniert nur, wenn das Makro direkt ausgeführt wird: Wenn du das Makro aus einem anderen Code heraus aufrufst, überprüfe, ob die Variablen für das Arbeitsblatt korrekt gesetzt sind.


Alternative Methoden

  1. Direkte Sortierung in Excel: Du kannst auch die integrierten Sortierfunktionen von Excel nutzen. Markiere deine Daten und gehe zu „Daten“ > „Sortieren“, um die gewünschten Spalten auszuwählen.

  2. Power Query: Nutze Power Query, um deine Daten zu sortieren. Importiere die Daten und wähle die Sortieroptionen in der Benutzeroberfläche.


Praktische Beispiele

  • Um eine Liste von Verkaufszahlen nach dem Umsatz in Spalte L und dem Produktnamen in Spalte K zu sortieren, kannst du den obigen VBA-Code verwenden. Stelle sicher, dass der Arbeitsblattname richtig angegeben ist.
Sub SortiereVerkaufszahlen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Verkaufsliste")

    ws.Range("A2:L2000").Sort Key1:=ws.Range("L3"), Order1:=xlDescending, _
                              Key2:=ws.Range("K3"), Order2:=xlAscending, _
                              Header:=xlYes
End Sub

Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Fehlerbehandlung einfügen: Implementiere On Error Resume Next und On Error GoTo 0, um mögliche Fehler abzufangen und zu behandeln, ohne das Makro zum Absturz zu bringen.


FAQ: Häufige Fragen

1. Warum funktioniert mein Sortiermakro nicht, wenn ich es in ein größeres Programm einfüge?
Das liegt häufig an fehlenden Arbeitsblatt- oder Workbook-Referenzen. Stelle sicher, dass alle Bereiche korrekt definiert sind.

2. Kann ich die Sortierung auch auf andere Bereiche anwenden?
Ja, du kannst die Range-Anweisung anpassen, um andere Bereiche oder Spalten zu sortieren, indem du die entsprechenden Zelladressen änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige