Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sortieren per VBA

Forumthread: Sortieren per VBA

Sortieren per VBA
23.01.2003 09:02:25
Klaus Kunkler
Guten Morgen,
via VBA wird der Teil einer Tabelle sortiert, derzeit nach der Spalte A. Der Anwender sollte jedoch die Möglichkeit haben, über eine Box auch eine (!) andere Spalte zur Sortierung auszuwählen. Über eine Eingabebox lässt sich das wohl realisieren, nur wie sage ich es meinem VBA Sortiermakro ? Sorry Ha_Jo, ist aufgezeichnet, daher mit select !

Vielen Dank bereits jetzt

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Sortieren per VBA
23.01.2003 09:13:12
Steffan
Hallo Klaus,

versuche folgendes:

Dim iSpalte As Integer
iSpalte = InputBox("Nummer der Spalte nach der sortiert werden soll?", "Sortierung", Trim(Str(ActiveCell.Column)))
Rows("7:" & [a65536].End(xlUp).Row).sort _
Key1:=Cells(7, iSpalte), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select

Steffan.

Anzeige
Missverständlich von mir formuliert
23.01.2003 09:22:08
Klaus Kunkler
Hallo Steffan,
erstmal vielen Dank für den Tipp. Ich hatte mich bezüglich der Auswahlbox missverständlich ausgedrückt. Der Anwender soll nach den in der Tabelle vorgegebenen Kopfbezeichnungen wie Strasse, Etage etc. wählen können. Die Angabe der Spaltennummer führt leider aufgrund der Anwenderprofile nicht zu einem Erfolg !!!
Könntest Du mir nochmal helfen ?
Danke
Klaus
Anzeige
Re: Missverständlich von mir formuliert
23.01.2003 11:56:22
Steffan
Hallo Klaus,

Du brauchst ein Userform (Name: 'UserForm1'), dass mindestens eine Listbox (Name: 'Listbox1') und einen Commandbutton (Name: 'cmdSort') enthält.
In den Codebereich des UserForm gehört folgender Code:

Private Sub cmdSort_Click()
Dim iSpalte As Integer
iSpalte = UserForm1.ListBox1.ListIndex + 1
Unload UserForm1
Range("A1").Select
Rows("7:" & [a65536].End(xlUp).Row).sort _
Key1:=Cells(7, iSpalte), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Private Sub UserForm_Initialize()
ListBox1.Clear
For i = 1 To ActiveSheet.Cells(7, 256).End(xlToLeft).Column
ListBox1.AddItem ActiveSheet.Cells(7, i).Value
Next
On Error Resume Next
ListBox1.ListIndex = ActiveCell.Column - 1
End Sub

Deinem CommandButton auf dem Tabellenblatt musst Du jetzt lediglich folgenden Code zuordnen:

UserForm1.Show

Dann sollte es wie gewünscht klappen.

Steffan.

Anzeige
Re: Missverständlich von mir formuliert
23.01.2003 11:56:23
Steffan
Hallo Klaus,

Du brauchst ein Userform (Name: 'UserForm1'), dass mindestens eine Listbox (Name: 'Listbox1') und einen Commandbutton (Name: 'cmdSort') enthält.
In den Codebereich des UserForm gehört folgender Code:

Private Sub cmdSort_Click()
Dim iSpalte As Integer
iSpalte = UserForm1.ListBox1.ListIndex + 1
Unload UserForm1
Range("A1").Select
Rows("7:" & [a65536].End(xlUp).Row).sort _
Key1:=Cells(7, iSpalte), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Private Sub UserForm_Initialize()
ListBox1.Clear
For i = 1 To ActiveSheet.Cells(7, 256).End(xlToLeft).Column
ListBox1.AddItem ActiveSheet.Cells(7, i).Value
Next
On Error Resume Next
ListBox1.ListIndex = ActiveCell.Column - 1
End Sub

Deinem CommandButton auf dem Tabellenblatt musst Du jetzt lediglich folgenden Code zuordnen:

UserForm1.Show

Dann sollte es wie gewünscht klappen.

Steffan.

Anzeige
Danke Steffan, das ist es !!!!
23.01.2003 13:29:28
Klaus Kunkler

;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige