abuelito
Goto Top

Excelsortierung mit VBA

Hallo an Alle,

ich habe wieder mal ein riesen Problem:

Ich habe eine Exceltabelle mit verschiedenen Spalten (Ort, Preis, Name, usw.) und ca. 300 Zeilen (können aber noch etliche Zeilen hinzukommen) .. Nun hätte ich gerne eine autom. Sortierung:

Wenn ich z.B. auf die Zelle Name klicke, dann soll die komplette Tabelle nach Name (aufsteigend) sortiert werden, klicke ich anschließend auf Ort, dann soll die Sortierung (aufsteigend) nach Ort stattfinden (auch für die komplette Tabelle), usw.

Kann man das mit VBA realisieren und wenn ja, wie???

Vielen Dank an euch

LG

Content-ID: 281335

Url: https://administrator.de/contentid/281335

Ausgedruckt am: 15.11.2024 um 19:11 Uhr

eisbein
eisbein 27.08.2015 um 14:17:46 Uhr
Goto Top
Hallo!

Nachdem du ohnehin auf die jeweilige Spalte klickst, kannst du das einfach mit dem Filter aus der Menüleiste realisieren.
Oder muss es unbedingt VBA sein?

Gruß
Eisbein
TryAndSolve
TryAndSolve 27.08.2015 aktualisiert um 14:39:03 Uhr
Goto Top
Muss es unbedingt ein VBA-Skript sein, oder reichen auch die bereits in Excel implementierten Funktionen aus?
Die Sortierung funktioniert einfach, indem du einen gewünschten Bereich markierst und oben in der Leiste "Einfügen" - "Tabelle" auswählst.

ef9b1134e78c76f45cc3103c71fd2f71
Bei der nun erscheinenden MessageBox setzt du in der Checkbox den Eintrag "Tabelle hat Überschriften" und klickst auf OK.

Nun hast du eine Tabelle erstellt, bei der die erste Zelle jeder Spalte rechts oben in der Ecke einen kleinen Button hat. Den kannst du jetzt anklicken und eine Sortierfunktion auswählen. Wenn deine gewünschte Sortierform nicht dabei sein sollte, kannst du eine neue erstellen.

Das Ergebnis sieht dann so aus:

0bcd9f97cbefd42e08bd914baec0137a
abuelito
abuelito 27.08.2015 um 14:56:45 Uhr
Goto Top
Hallo Eisbein,

vielen Dank für Deine Antwort.

Ja, über das Menü geht es natürlich, aber das dauert leider viel zu lange, weil ich viel zu viele Spalten habe. Daher würde ich es gerne per Klick auf die Überschriften realisieren.

LG
abuelito
abuelito 27.08.2015 um 14:58:17 Uhr
Goto Top
Die Funktion übers Menü reicht leider nicht, da es viel zu lange dauert und in der Tabelle hin und her sortiert werden muss. Daher würde ich es gerne per klick auf die Überschrift der jeweiligen Spalte realisieren.

Vielen Dank

LG
colinardo
colinardo 27.08.2015 aktualisiert um 15:46:18 Uhr
Goto Top
Hallo abuelito,
da es viel zu lange dauert
time is money gelle face-wink
Kann man das mit VBA realisieren und wenn ja, wie???
Selbstverständlich..., schaust du in dieses Demo-Sheet:
sort_withclickonheader_281335.xlsm

Grüße Uwe
abuelito
abuelito 27.08.2015 um 16:03:02 Uhr
Goto Top
Hallo Uwe,

man, vielen lieben Dank.

Ich habe eine Frage, klappt das auch mit Excel 2003? Denn wenn ich auf die Zelle A1, A2 oder A3 klicke, dann wird nicht autom. sortiert.

LG
colinardo
Lösung colinardo 27.08.2015, aktualisiert am 28.08.2015 um 08:25:44 Uhr
Goto Top
Zitat von @abuelito:
Ich habe eine Frage, klappt das auch mit Excel 2003? Denn wenn ich auf die Zelle A1, A2 oder A3 klicke, dann wird nicht autom.
sortiert.
Teste es nachher nochmal auf 2003. (Da bekommt die Archiv-VM mit dem verstaubten Excel 2003 nochmal was zu tun ;-P)

-edit- gerade unter Excel 2003 getestet, dort fehlen ein paar Methoden zur Sortierung, deshalb musste es etwas angepasst werden, hier der Code für Excel 2003 den du statdessen verwenden musst:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    ' Wenn in die Überschriftenzeile gewechselt wird ...  
    If Not Application.Intersect(ActiveSheet.Range("1:1"), Target) Is Nothing Then  
        'Events temporär deaktivieren  
        Application.EnableEvents = False
        'Sortieren  
        ActiveSheet.UsedRange.Sort Key1:=ActiveSheet.Cells(2, Target.Column), Order1:=xlAscending, MatchCase:=False, Header:=xlYes
        'Events wieder aktivieren  
        Application.EnableEvents = True
    End If
End Sub
Habe das Sheet oben auch noch aktualisiert, jetzt gehts in allen Versionen gleichermaßen.

Grüße Uwe
abuelito
abuelito 28.08.2015 um 08:25:32 Uhr
Goto Top
Guten Morgen Uwe

UUUUUUUWEEEEEEE .. Du bist echt der Hammer, ohne Spaß

Vielen Dank

LG