Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
204to208
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
204to208
204to208
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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.

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige