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
Anzeige