Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
Inhaltsverzeichnis

Sortieren nach Spalten in dynamischer Tabelle

Sortieren nach Spalten in dynamischer Tabelle
25.04.2018 07:45:46
Gerhard
Bitte um VBA Hilfe!
In meiner dynamischen Tabelle sollte diese nach jeweils jeder Spalte neu sortiert
werden können!
siehe Testmappe im Anhang!
Vielen Dank für Eure Hilfe
Gruß Gerhard
https://www.herber.de/bbs/user/121255.xls

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren nach Spalten in dynamischer Tabelle
25.04.2018 08:12:43
Martin
Hallo Gerhard,
ich habe dir eine dynamische Sortierung eingerichtet:
https://www.herber.de/bbs/user/121256.xls
Entscheidend ist der jeweilige Name der Sortiergrafik. Es wird die Zahl nach dem ersten Leerzeichen des Grafiknamens ausgelesen und als Spaltennummer interpretiert. So kannst du beliebig viele weitere Spalten ohne Veränderung des Makros ergänzen und sortieren.
Viele Grüße
Martin
Neue optimierte Version
25.04.2018 08:39:44
Martin
Hallo Gerhard,
unter der Dusche ist mir eine bessere Idee gekommen. Jetzt reicht es aus die Sortiergrafik einfach in eine andere Spalte zu kopieren, denn du weitere Spalten einfügst. Die Namen der Sortiergrafiken spielen jetzt keine Rolle mehr, da die Spalte in der Grafik automatisch ermittelt wird:
https://www.herber.de/bbs/user/121259.xls
Zudem ist der VBA-Code jetzt noch kürzer ;-)
Viele Grüße
Martin
Anzeige
AW: Neue optimierte Version
25.04.2018 12:48:58
Gerhard
Hallo Martin,
Dein Makro ist ja super!
Es hat ja nur ein paar Zeilen!
Wie fragst Du die dynamische Größe der Tabelle ab?
Vielen Dank
Gruß Gerhard
AW: Neue optimierte Version
25.04.2018 13:32:22
Daniel
Gar nicht.
es wird einfach das ganze Tabellenblatt sortiert (Cells.Sort), damit erübrigt sich die Abfrage der Größe.
für eine dynamische Größe könnte man einfach auf die Excelautomatik zurückgreifen und nur die erste Zelle angeben: Cells(1, 1).Sort...
Excel würde dann den Zellbereich erweitern, bis dieser von einer durchgehenden Leerzeile und Leerspalte umschlossen ist.
Das gleiche würde Cells(1, 1).CurrentRegion.Sort machen
wenn noch Leerzeilen ode Leerspalten vorhanden sind, (was aber nicht sein sollte) könnte man noch
AcitveSheet.UsedRange.Sort ... verwenden.
Gruß Daniel
Anzeige
AW: Neue optimierte Version
26.04.2018 06:09:48
Martin
Hallo Gerhard,
es kommt zwar etwas spät, aber eine Kleinigkeit ist mir noch aufgefallen: Die Spalte mit den Datumsformaten werden nicht korrekt sortiert, weil die Zellen nicht immer als Datum formatiert sind. Man kann aber mit "DataOption1:=xlSortTextAsNumbers" erzwingen, dass Texte als Zahlen behandelt werden. Der Code sieht dann so aus:
Sub Sorierung()
Dim iCol As Integer
iCol = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column
Cells.Sort Key1:=Cells(1, iCol), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1,  _
Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers
End Sub
Viele Grüße
Martin
Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige