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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 281335
Url: https://administrator.de/contentid/281335
Ausgedruckt am: 15.11.2024 um 19:11 Uhr
8 Kommentare
Neuester Kommentar
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.
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:
Die Sortierung funktioniert einfach, indem du einen gewünschten Bereich markierst und oben in der Leiste "Einfügen" - "Tabelle" auswählst.
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:
Hallo abuelito,
sort_withclickonheader_281335.xlsm
Grüße Uwe
da es viel zu lange dauert
time is money gelle 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
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)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.
-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
Grüße Uwe