Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatische Sortierung

Automatische Sortierung
Richard
Hi Leute!
Wie kann ich eine Tabelle automatisch sortieren lassen (am besten vollautomatisch nach jeder Änderung der Tabelle); die Daten stammen ausschließlich aus Verknüpfungen zu anderen Tabellenblättern innerhalb derselben Excel-Datei.
Wer weiß Bescheid?
Ich nehmen gerne auch selbstgeschriebene Makros entgegen, brauch dann aber eine Anleitung, wie ich diese in das Tabellenblatt integriere.
Danke im Voraus.
Ciao,
Richard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Automatische Sortierung
Matthias
Hallo Richard,
z.B. mit diesem Code ins Arbeitsblattmodul des Blattes, das die zu sortierenden Daten enthält:

Private Sub Worksheet_Calculate()
Columns("A:B").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

(Rechtklick auf Tabellenblattnamen im Arbeitsblattregister, "Code anzeigen", obigen Code da reinkopieren.
Die Argumente des Sort-Befehls musst Du evtl. noch anpassen.
Nutze hier den Makro-Rekorder!
Gruß Matthias
Anzeige
AW: Automatische Sortierung
Richard
Hi Matthias!
Danke für Deine Hilfe
Habe den Code kopiert! Was muss ich als nächstes tun, d.h. wie starte ich den Recorder zum "Anpassen der Argumente". Vielleicht kannst Du mir auch direkt den Code geben (die Tabelle soll im Bereich A4:J25 nach der Spalte C sortiert werden; in dieser Spalte stehen Zahlen, sortiert werden soll von der größten zur kleinsten)
Danke im Voraus.
Ciao,
Richard
FRAGE NOCH OFFEN
Richard
f
AW: Automatische Sortierung
Matthias
Hallo Richard,
der Sort-Befehl lautet dann so:
    Range("A4:J25").Sort Key1:=Range("C4"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Gruß Matthias
Anzeige
AW: Automatische Sortierung
Richard
Hi nochmal!
Sorry, bin VBA-Neuling (zumindestens was nicht direkt mit dem Rekorder zu tun hat).
Habe den Code kopiert. Was muss ich jetzt tun (welchen Befehl in welchem Menu); wichtig ist vor allem, dass Excel nach jeder Eingabe die Tabelle neu sortiert.
Habs versucht über Extras-Makro und einen namen vergeben und bin dann auf erstellen gegangen. Wenn ich das makro dann aber ablaufen lasse, kommt der Fehler "Fehler beim Kompilieren. Ausserhalb einer Prozedur ungültig".
Nochmals Vielen Dank für Deine Hilfe.
Ciao,
Richard
FRAGE NOCH OFFEN
Richard
f
hat geklappt aber eine Frage noch
richard
Sorry!
War zu voreilig. Funktioniert einwandfrei. Danke!
Eine Frage habe ich aber noch. Excel hat beim Sortieren recht lang gerechnet. Die Rechnung bezieht sich aber definitig nur auf das Arbeitblatt, in das der Code kopiert wurde, oder muss ich auf etwas bestimmtes achten, damit Excel nicht jedes Arbeitsblatt der Arbeitsmappe sortiert.
Danke für Deine SUPER funtionierenden Code.
Ciao,
Richard
Anzeige
AW: hat geklappt aber eine Frage noch
04.05.2004 16:39:08
Matthias
Hallo Richard,
dadurch, dass du das Makro ins Codemodul eines best. Arbeitsblattes stellst, ist gewährleistet, dass es nur beim betreffenden Ereignis des Arbeitsblattes ausgeführt wird.
Ich kann mir gar nicht vorstellen, dass es so lange dauert, sind ja nur ca. 20 Zeilen zu sortieren...
Alternative:
Den Bereich nur dann Sortieren, wenn das Blatt aktiviert wird.
Ich gehe davon aus, dass die Änderungen in den anderen Blättern manuell geschehen, dann macht es ja erstmal nix, wenn die Daten noch nicht sortiert sind. Das Blatt ist ja noch nicht sichtbar.
Wird das Blatt dann aktiviert wird, wird automatisch sortiert.
Die geschieht durch das Ereignis "Activate", die zugehörige Sub heißt:

Private Sub Worksheet_Activate()
' hier rein den bekannten Sortierbefehl!
End Sub

Du kannst dir die Ereignisprozedur auch durch Auswahl in den Listboxen oben im Modulblatt raussuchen, dann wird der Prozedurrumpf automatisch erzeugt.
Viel Erfolg,
Matthias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige