Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
232to236
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
232to236
232to236
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

sortieren nach eingabe...

sortieren nach eingabe...
20.03.2003 14:27:40
jenso
Hallo zusammen,

ich habe eine Excel Tabelle mit mehreren Spalten und möchte, das nach klick auf die Spaltenüberschrift die gesamte Tabelle nach entsprechender Spalte sortiert wird. Geht das? Habe keine Vorstellung ob und ggf wie das möglich ist.
Danke im voraus
Jenso


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

Betreff
Datum
Anwender
Anzeige
Re: sortieren nach eingabe...
20.03.2003 14:36:11
MRR

NICHT auf den Spaltenkopf klicken!!! Einfach in die Spalte auf eine beliebige Zelle, dann einen der beiden Schalter (AZ oder ZA) in der Standard-Symbolleiste betätigen.
Willst Du eine mehrfach sortiere Liste vorliegen haben, beginne mit der unwichtigsten Spalte und arbeite Dich dann zur wichtigen hin nach oben hin durch. So kannst Du auch 10-fach sortierte Liste in wenigen Sekunden vorliegen haben.
HTH, Matthias

Re: sortieren nach eingabe...
20.03.2003 14:43:56
jenso

Hallo Matthias,

vermutlich habe ich mich nicht richtig ausgedrückt. Wie man Spalten sortiert ist mir schon klar. In diesem Fall handelt es sich um einen monatlichen Nutzungsreport, in dem Zeilenweise Länder und in Spalten Kriterien wie Aufträge, Positionen etc. stehen. Ich möchte nun in den Spaltenkopf eine Formel o.ä. einbauen, sodass die entsprechenden Leute anschließend nur noch auf den Spaltenkopf klicken um gewünschte Sortierung herstellen zu können. Hintergrund ist der, das die Leute die entsprechenden Bericht bekommen keinerlei Excel Kenntnisse haben...
Ist das so realisierbar?

Anzeige
Re: sortieren nach eingabe...
20.03.2003 14:54:06
MRR

Ah - jetzt klar.
Folgenden Code für das fragliche Blatt:

HTH, Matthias

Re: sortieren nach eingabe...
20.03.2003 15:19:11
jenso

Hi,

sorry das ich noch mal nachhaken muss. Wie füge ich den dieses Script ein? Wenn ich über Makro ein neues VB Script anlegen möchte bekomme ich immer eine Fehlermeldung zurück.(Fehler beim kompilieren, end sub erwartet) Leider kenne ich mich auch mit VB überhaupt nicht aus...
Und wie ist die funktionalität anschließend? Muß ich erst immer das Makro ausführen oder funktioniert das on klick?
Vielen Dank für deine Mühen!
jenso


Re: sortieren nach eingabe...
20.03.2003 16:32:22
jenso

keine Lust mir ne kurze Hilfe zu schreiben? Wäre echt nett... Ich komme ja auch soweit mit dem VB editor klar, nur muß in diesem code ein Fehler sein, da ich, wie bereits geschrieben, beim Versuch das ganze auszuführen immer diese Fehlermeldung bekomme...

jenso


Anzeige
Re: sortieren nach eingabe...
20.03.2003 16:46:05
MRR

Sorry, war für 2 Stunden außer Haus.
VB-Editor, Doppelklick im Projektexplorer auf die Tabelle, in der die Daten liegen.
Im Code dann komplett mein Makro einfach einfügen.
Rüber in die Tabelle und testen, was das Zeug hält.

Matthias

Re: sortieren nach eingabe...
20.03.2003 17:07:17
jenso

Hi!

Leider hab ichs immer noch nicht hinbekommen, aber werds morgen auf jeden Fall nochmal weiter versuchen! Wenn ich, nachdem ich im Projektexplorer auf meine Tabelle geklickt hab den code einfüge und das ganze speichere, passiert erstmal nix. Wenn ich dann in meine Tabelle zurück gehe ist kein Makro gespeichert und ich habe auch keine Ahnung wie ich dieses script jetzt zum laufen bekommen sollte. Muß ich zuvor den zum Sortieren gewollten Bereich markieren? Irgendetwas mache ich falsch... Naja, werde mich erstmal ein Stück weit in VB einarbeiten müssen, da ich wirklich keine Vorstellung habe was dieser Code eigentlich macht und es deshalb schwierig ist die Ursache zu finden warum das ganze nicht läuft.
Vielen Dank für deine Hilfe!
Grüße
Jenso


Anzeige
Re: sortieren nach eingabe...
20.03.2003 18:53:38
MRR

Hi Jenso,
hier noch einmal zum Mitschreiben.
Der Code ist mit einem bestimmten Ereignis verbunden - dem Anklicken IRGENDEINER Zelle der Tabelle, in den wir ihn hineinstellen. Jedes Mal, wenn der User eine Zelle oder einen Bereich (z.B. Spaltenkopf) anklickt, wird diese Prozedur AUTOMATISCH aufgerufen - da muss NIEMAND irgendein Makro für starten oder sonstwie aufrufen.
Im Einzelnen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Die wird automatisch aufgerufen und "weiss", welche Zelle (Target) gerade angeklickt wurde.

Alle folgenden Aktionen (nämlich das Sortieren) sollen nur passieren, wenn man im Bereich der Spalten A:E klickt. Sollte Deine Tabelle mehr Daten haben (z.B. im Bereich A:K), müsste man hier eine Anpassung vornehmen.
Wenn die Schnittmenge der angeklickten Zelle und dem Spaltenbereich Deiner Tabelle in irgendeiner Form übereinstimmt, dann soll was passieren
If Not Intersect(Target, Range("A:E")) Is Nothing Then

Das Sortieren soll jedoch nur passieren, wenn wir eine ganze Spalte markiert haben. Dazu lesen wir aus, wie viele Zeilen in "Target" sind. Sollten dies 65536 sein, hat der User eine Spalte markiert.
If Target.Rows.Count = 65536 Then

Damit beim gleich folgenden Zell-Anklicken (hier im Code) nicht ERNEUT die selbe Prozedur aufgerufen wird (wie gesagt, die macht das ja automatisch, sobald "man" (User oder Makro) eine Zelle auswählt), schalten wir das Reagieren auf Ereignisse aus.
Application.EnableEvents = False

Wir markieren jetzt die erste Zelle in der markierten Spalte.
Cells(1, Target.Column).Select

Unter der Voraussetzung, dass die Tabellendaten in A1 beginnen, können wir von dort aus per STRG-* den gesamten Listenbereich ansprechen, um diesen zu sortieren. Das Sortierfeld/-spalte ist die, in die wir uns soeben hingesetzt haben (Range(ActiveCell)). Wenn ich davon ausgehe, dass wir eine Überschriftzeile haben, setzen wir Header auf JA (Überschriften werden vorhanden sein).
Range("A1").CurrentRegion.Sort Key1:=Range(ActiveCell), Order1:=xlAscending, Header:=xlYes

NICHT VERGESSEN das Reagieren auf Ereignisse UNBEDINGT wieder einzuschalten!!!
Application.EnableEvents = True
End If
End If
End Sub

So, das war's mit der Erklärung. Hoffe, dass es jetzt etwas deutlicher geworden ist.
Matthias

Anzeige

215 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige