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

Forumthread: Sortieren auf anderem Blatt

Sortieren auf anderem Blatt
13.10.2005 18:15:07
hoha
Hi,
ich hab das selbe problem wie in diesem Beitrag.
Leider verstehe ich nicht die Llösung dieses Problems
könnte mir mal jemand helfen?
thx
hier ist der Artikel:
Hallo Excel-User,
ich versuche mit der Anweisung "Selection.Sort" einen markierten Bereich zu sortieren. Solange sich dieser Bereich auf dem Blatt befindet, dem der Code zugeordnet ist (z.B. Tabelle1), funktioniert es prima.
Liegt der markierte Bereich auf einem anderen Blatt (z.B. Tabelle2), schlugen alle Versuche fehl.
Wie kann ich erreichen, dass ein markierter Bereich in Tabelle2 sortiert wird, obwohl der Code "Selection.Sort" aus Tabelle1 gestartet wird?
Rüdiger

Re: Sortieren auf anderem Blatt
Hallo!
Schreibe den Code in ein allgemeines Modul.
Gruß
F.
Re: Sortieren auf anderem Blatt
Hallo Rüdiger,
soweit ich weiß, musst Du die Tabelle (das Worksheet) vor dem Einsatz der Sort-Funktion aktivieren.
Beispiel:
'Zu sortierende Tabelle aktivieren
Worksheets("DeineTabelle").Activate
'Sortieren
Range("A4:O800").Sort Key1:=Range("B5"), Order1:=xlAscending, Key2:=Range("E5") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
'Wieder andere Tabelle aktivieren (optional)
Worksheets("AndereTabelle").Activate
Gruß
Vincent
Re: Sortieren auf anderem Blatt
Hallo Frederik,
das habe ich schon mit Erfolg probiert, da dadurch aber andere - für mich unlösbare Probleme - auftreten (z.B. "Private Sub CommandButton2_Click()" wird nicht mehr erkannt u.s.w.).
Gibt es keine direkte Lösung? In etwa "Sheets("Tabelle2").Selection.Sort . . ."?
Wie kann ich den Sortier-Code im allgemeinen Modul starten, wenn der Rest der Ereignisse weiterhin in Tabelle1 verbleibt?
Rüdiger
Re: Sortieren auf anderem Blatt
Hallo
in VBA kann zu 99% auf select, Activatte usw. verzichtet werden
Worksheets("DeineTabelle").Range("A4:O800").Sort .....
Gruß Hajo
Re: Sortieren auf anderem Blatt
Hallo Hajo,
Deine Methode (Worksheets("DeineTabelle").Range("A4:O800").Sort) habe ich auch schon getestet. Sie funktioniert leider nur, wenn "DeineTabelle" sowieso schon aktiv ist.
Grüße
Vincent
Re: Sortieren auf anderem Blatt
Hallo Vincent
ich habe hier nun kein Excel. Dann mit
With Worksheets("DeineTabelle")
.Range("A4:O800").Sort....
End With
Gruß Hajo
Re: Sortieren auf anderem Blatt
Hallo Hajo,
mit "With" leider das selbe Ergebnis (Laufzeitfehler 1004: Der Sortierbezug ist ungültig). With dient ja auch nur dazu, den Quellcode für den Programmierer übersichtlicher zu machen. Die Funktionsweise ist aber die selbe.
Ich habe übrigens auch gleich die Version ohne Activate getestet, da ich das dadurch verursachte kurze Aufflackern des Bildschirms ziemlich hässlich finde.
Grüße
Vincent
Re: Sortieren auf anderem Blatt
Hallo Vincent
es fehlte der zweite Punkt
With Worksheets("DeineTabelle")
.Range("A4:O800")Sort Key1:=.Range("A4")....
End With
Gruß Hajo
Re: Danke
Hallo Georg, hallo Vincent,
vielen Dank für euren Dialog. Die letzte Info mit dem Punkt war entscheident! Darauf wäre ich nicht gekommen.
Nochmal herzlichen Dank
Rüdiger
Re: Danke
Hallo Georg und Hajo,
Danke für den Hinweis mit den Punkten, die hatte ich ganz übersehen.
Grüße
Vincent
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren auf anderem Blatt
13.10.2005 18:44:33
Hajo_Zi
Hallo Vicent,
ich sehe nicht wo Dein Problem ist?
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Sortieren auf anderem Blatt
14.10.2005 16:59:08
hoha
Hi,
sorry ich solts mal besser formulieren.
ich möchte auf in jeder Arbeitsmappe den Bereich "A2:F10"
sortieren. Ich möchte aber das "Worksheet aktivieren"
nicht verwenden da das bild dann immer flackert.
der codde sieht momentan so aus:
Worksheets("Gruppe A").Range("A2:F10").Sort Key1:=Range("C3"),...
Doch wie dem Artikel bekomme ich den Laufzeitfehler 1004 Der Sortierbezug ist ungültig...
Anzeige
AW: Sortieren auf anderem Blatt
14.10.2005 19:12:43
Hajo_Zi
Hallo Vincent,
siehe Dir mal den Originalcode an da wude mit With und Punkten vor Range gearbeitet.
With Worksheets("Gruppe A")
.Range("A2:F10").Sort Key1:=.Range("C3")..
End With
Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
Anzeige
AW: Sortieren auf anderem Blatt
15.10.2005 14:44:40
hoha
hi hajo
ich habe jetzt einen Synatxfehler kann ihn aber nicht finden.
mein code:

Sub Sotieren()
' Sotieren Makro
With Worksheets("Gruppe A")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=Range("F3")
, Order2:=xlDescending, Key3:=Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
With Worksheets("Gruppe B")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=Range("F3") _
, Order2:=xlDescending, Key3:=Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
With Worksheets("Gruppe A")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=Range("F3") _
, Order2:=xlDescending, Key3:=Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
ActiveWorkbook.Save
End Sub

gruß hoha
Anzeige
AW: Sortieren auf anderem Blatt
15.10.2005 14:48:07
Fred
Hi,

Sub Sotieren()
' Sotieren Makro
With Worksheets("Gruppe A")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3")
, Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
With Worksheets("Gruppe B")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3") _
, Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
With Worksheets("Gruppe A")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3") _
, Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
ActiveWorkbook.Save
End Sub

mfg Fred
Anzeige
AW: Sortieren auf anderem Blatt
15.10.2005 17:00:18
hoha
Hi,
ich bekomme leider immernoch den Syntaxfehler.
hoha
AW: Sortieren auf anderem Blatt
15.10.2005 17:00:40
hoha
Hi,
ich bekomme leider immernoch den Syntaxfehler.
hoha
AW: Sortieren auf anderem Blatt
15.10.2005 17:05:08
hoha
ups
zwei mal
sry
Anzeige
AW: Sortieren auf anderem Blatt
15.10.2005 17:10:46
Fred
Hi,
lad mal ein beispiel hoch.
mfg Fred
AW: Sortieren auf anderem Blatt
16.10.2005 09:07:58
hoha
Hi,
hier ist mal die vereinfachte Datei:
https://www.herber.de/bbs/user/27539.xls
Ist vieleicht ein bisschen grob gestrickt
ich binn noch ein Excel-Anfänger.
Gruß
hoha
Anzeige
AW: Sortieren auf anderem Blatt
16.10.2005 11:35:03
Björn
Hallo ?,
probier's mal mit:

Sub Sotieren()
' Sotieren Makro
With Worksheets("Gruppe A")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3") _
, Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
With Worksheets("Gruppe B")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3") _
, Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
With Worksheets("Gruppe A")
.Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3") _
, Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
End With
ActiveWorkbook.Save
End Sub

Gruß
Björn
Anzeige
AW: Sortieren auf anderem Blatt
16.10.2005 16:07:48
hoha
Hi,
Danke leute ihr wart meine Rettung,
es funktioniert endlich.
P.S: kleiner hinweis du hast beim dritten abschnitt "Gruppe A" statt "Doppel" geschrieben.
ISt ja jetzt egal es funktioniert und ich bin glücklich!!!!!!!!!!!!!!!!!!
Uuups,... und danke für die Rückmeldung - o. T.
16.10.2005 18:18:41
Björn
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Blätter sortieren in Excel: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um Daten aus einem anderen Blatt in Excel zu sortieren, kannst du den folgenden VBA-Code verwenden. Dieser Code sortiert den Bereich "A2:F10" in den Arbeitsblättern "Gruppe A" und "Gruppe B".

Sub Sortieren()
    ' Sortieren Makro
    With Worksheets("Gruppe A")
        .Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3"), _
        Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
        DataOption2:=xlSortNormal, DataOption3:=xlSortNormal
    End With

    With Worksheets("Gruppe B")
        .Range("A2:F10").Sort Key1:=.Range("C3"), Order1:=xlDescending, Key2:=.Range("F3"), _
        Order2:=xlDescending, Key3:=.Range("D3"), Order3:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
        DataOption2:=xlSortNormal, DataOption3:=xlSortNormal
    End With

    ActiveWorkbook.Save
End Sub

Stelle sicher, dass du den Code in ein allgemeines Modul einfügst, anstatt in ein spezifisches Arbeitsblatt-Modul.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Der Sortierbezug ist ungültig

    • Dies geschieht häufig, wenn der Bereich nicht korrekt definiert ist. Achte darauf, dass der Bereich existiert und richtig angegeben ist.
  • Syntaxfehler

    • Überprüfe die Verwendung von Punkten (.) vor den Range-Objekten, wenn du die With-Anweisung verwendest. Beispiel:
      With Worksheets("DeineTabelle")
      .Range("A4:O800").Sort Key1:=.Range("B5")
      End With
  • Bildschirmflackern bei Aktivierung

    • Um Bildschirmflackern zu vermeiden, verwende die With-Anweisung und verzichte auf Activate und Select.

Alternative Methoden

Wenn du eine Excel-Datei sortieren möchtest, ohne VBA zu verwenden, kannst du die Sortierfunktion direkt in Excel nutzen:

  1. Markiere den gewünschten Bereich.
  2. Gehe zu "Daten" in der Menüleiste.
  3. Klicke auf "Sortieren" und wähle die gewünschten Sortierkriterien aus.

Diese Methode ist einfach und erfordert keinen Programmieraufwand, eignet sich jedoch nicht für automatisierte Prozesse.


Praktische Beispiele

Hier sind einige Beispiele, wie du Blätter sortieren kannst:

  1. Sortieren nach einer bestimmten Spalte

    • Um nach der dritten Spalte zu sortieren:
      .Range("A2:F10").Sort Key1:=.Range("C3")
  2. Sortieren mehrerer Spalten

    • Wenn du nach mehreren Kriterien sortieren möchtest:
      .Range("A2:F10").Sort Key1:=.Range("C3"), Key2:=.Range("F3")

Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um das Flackern des Bildschirms bei der Ausführung von VBA-Codes zu reduzieren.
  • Verwende On Error Resume Next, um Fehler zu ignorieren und deinen Code robuster zu machen.
  • Dokumentiere deinen Code, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Blätter gleichzeitig sortieren?
Um mehrere Blätter zu sortieren, wiederhole den Sortiercode für jedes Blatt im VBA-Skript.

2. Ist dieser Code kompatibel mit Excel 2023?
Ja, der Code sollte in den meisten modernen Excel-Versionen, einschließlich Excel 2023, funktionieren.

3. Kann ich die Sortierreihenfolge ändern?
Ja, passe die Parameter Order1, Order2 usw. an, um die gewünschte Sortierreihenfolge zu bestimmen (z.B. xlAscending für aufsteigend).

4. Wie kann ich den Code für andere Bereiche anpassen?
Ändere einfach die Range-Definition im Code, um die gewünschten Zellen anzugeben, die sortiert werden sollen.

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