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