Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
tabelle in Userform sortieren
19.09.2006 11:36:52
ray
Hallo,
auf einem UF lasse ich mir in einer ListBox ein sheet anzeigen. Per Klick sortiere ich die Zeilen auf dem sheet je nach der Spalte, die ich brauche. Es Ergebnis lasse ich mir dann natürlich wieder in einer ListBox auf dem UF anzeigen.
Nun zur Frage:
Ich möchte mir die Veränderung des sheets sparen und quasi die Daten vom sheet zwischenspeichern, sortieren und dann in einer Listbox ausgeben.
Sorry, kann mich mal wieder nicht verständlich ausdrücken... Hoffe ihr wißt,was ich meine.
Viele Grüße aus Hamburg bei 20 Grad im Sonne-Wolken-Mix
ray

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: tabelle in Userform sortieren
19.09.2006 12:18:44
otto
Hallo,
vielleicht so:
erst daten in ListBox einlesen, dann:

Sub SortBox(ListBox1 As Control, intSpalten As Integer, _
intSpalte As Integer, Optional bytWie As Byte = 3)
' So DIS 28.04.05
' SortBox sortiert nicht gebundene List- und Comboboxen. Gebundene List- und Comboboxen
' (Angabe bei RowSource oder ListFillRange) können NICHT sortiert werden.
' cltBox     : Name der Listbox die sortiert werden soll.
' intSpalten : Wieviele Spalten sollen mit sortiert werden. Sollte der Anzahl der Spalten
'              in der Listbox entsprechen
' intSpalte  : Nach welcher Spalte soll sortiert werden.
' bytWie     : 1 oder Nicht angegeben als Text
'            : 2 als Zahl, dann muß die ganze Spalte Zahlen enthalten.
'            : 3 als Datum, dann muß die ganze Spalte Datumwerte enthalten.
' Aufruf zum Beispiel so: ListBox1 mit 7 Spalten, Sortierung nach Spalte 1 Sortierordnung Text
' SortBox ListBox1, 7, 1  oder SortBox ListBox1, 7, 1, 1
' Oder so    : Listbox17 mit 2 Spalten, Sortierung nach Spalte 2 Sortierordnung Zahlen
' SortBox ListBox17, 2, 2, 2
Dim intLast As Integer, intNext As Integer, intCounter As Integer, intFehler As Integer
Dim strTmp As String, strFehlertext As String
Dim variLast As Variant, variNext As Variant
On Error GoTo Errorhandler
intFehler = 0
With ListBox1
For intLast = 0 To .ListCount - 1
For intNext = intLast + 1 To .ListCount - 1
Select Case bytWie
Case 1
intFehler = 0
variLast = CStr(.List(intLast, intSpalte - 1))
variNext = CStr(.List(intNext, intSpalte - 1))
Case 2
intFehler = 1
variLast = CDbl(.List(intLast, intSpalte - 1))
variNext = CDbl(.List(intNext, intSpalte - 1))
Case 3
intFehler = 2
variLast = CDate(.List(intLast, intSpalte - 1))
variNext = CDate(.List(intNext, intSpalte - 1))
End Select
intFehler = 0
If variLast > variNext Then
For intCounter = 0 To intSpalten - 1
strTmp = CStr(.List(intLast, intCounter))
.List(intLast, intCounter) = CStr(.List(intNext, intCounter))
.List(intNext, intCounter) = strTmp
Next intCounter
End If
Next intNext
Next intLast
End With
Exit Sub
Errorhandler:
Select Case intFehler
Case 0
strFehlertext = "In der Listbox Sortierung ist ein Fehler aufgetreten !"
Case 1
strFehlertext = "Nicht alle Werte in der zu sortierenden Spalte sind Zahlen !"
Case 2
strFehlertext = "Nicht alle Werte in der zu sortierenden Spalte sind Datumswerte !"
Case Else
strFehlertext = "Unerwarteter Fehler !"
End Select
MsgBox strFehlertext & " Bitte informieren Sie 'So' ! " & vbCr & vbCr & _
"Fehler aufgetreten in " & cltBox.Name & " !" & vbCr & _
"Fehlernummer = " & Err.Number & vbCr & _
"Fehlerbeschreibung = " & Err.Description & vbCr & _
"Fehlersource = " & Err.Source, vbCritical, " Meldung vom Makro SortBox !"
End Sub

Aufruf dann mit z.B. mit: Sort ListBox17, 2,2,2
Gruß
otto
PS: Code habe ich auch aus dem Forum, funktioniert super ich sortiere damit eine ListBox mit 6 Spalten nach Datum.
Anzeige
AW: tabelle in Userform sortieren
19.09.2006 13:13:53
ray

Private Sub UserForm_Initialize()
hi,
das ist meine testListbox:
Dim lR%
ListBox1.RowSource = "Tabelle1!A1:g10000"
ListBox1.ListIndex = 1
auf der selben UserForm rufe ich so Deinen Code auf:
SortBox ListBox1, 10, 2, 1
Es funzt nicht, was mach ich falsch?
Gruß
Ray
End Sub

AW: tabelle in Userform sortieren
19.09.2006 14:26:43
IngGi
Hallo Ray,
folgende Zeilen stehen als Kommentar in otto's Sortiermakro:
' SortBox sortiert nicht gebundene List- und Comboboxen. Gebundene List- und Comboboxen
' (Angabe bei RowSource oder ListFillRange) können NICHT sortiert werden.

Wenn du deine Listbox unabhängig von der Tabelle sortieren willst, mußt du über die ColumnsCount-Eigenschaft die Spaltenzahl der Listbox festlegen, anschließend mit der AddItem-Methode leere Elemente in deine Listbox einlesen und die Spalten dieser Elemente dann mit den Daten befüllen.
Gruß Ingolf
Anzeige
AW: tabelle in Userform sortieren
19.09.2006 14:35:06
ray
Hi,
die ColumnsCount-Eigenschaft die Spaltenzahl der Listbox habe ich festgelegt auf 10.
Für den Rest Deiner Worte fehlt mir der Verstand. Falls Du kein Code für mich hast, gebe ich mich bei meinem derzeitigen Wissenstand geschlagen...
Viele Grüße aus HH, hier regnet es gleich...
Ray
AW: tabelle in Userform sortieren
19.09.2006 15:02:26
IngGi
Hallo Ray,
hier mal ein Beispiel mit 100 Zeilen:

Private Sub UserForm_Initialize()
Dim ze As Long, sp As Integer
ListBox1.ColumnCount = 10
For ze = 0 To 99
ListBox1.AddItem
For sp = 0 To 6
ListBox1.List(ze, sp) = Sheets("Tabelle1").Range("A1").Offset(ze, sp)
Next 'sp
Next 'ze
End Sub
Gruß Ingolf
Anzeige
AW: tabelle in Userform sortieren
19.09.2006 15:04:58
ray
ok und danke. Ich werd mal ein bißchen herumprobieren.
Viele Grüße
Ray

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige