Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform - Codeänderung für Sortierung

Forumthread: Userform - Codeänderung für Sortierung

Userform - Codeänderung für Sortierung
28.02.2018 12:51:17
WalterK
Hallo,
mit dem untenstehenden Code für eine Userform (aus dem Internet) werden mir Suchtreffer ausgegeben. In Spalte F:F ist in der Excel-Liste das Datum hinterlegt, die Excel-Liste wird fortlaufend ergänzt, daher ist das jüngste Datum immer am Schluss der Excel-Liste.
So ist es dann natürlich auch bei den Suchtreffern in der Userform.
Was muss geändert werden, damit in der Userform das jüngste Datum oben ist, also absteigend sortiert. Die Excel-Liste selbst sollte nicht verändert werden.
Private Sub cmdSearch_Click()
Dim objSH As Worksheet
Dim rngSearch As Range
Dim strFirst As String
Dim Lz As Long
If txtSearch  "" Then
ListBox1.Clear
Set objSH = Sheets("Test")
With objSH
Lz = Application.Max(23, .Cells(Rows.Count, 2).End(xlUp).Row)
Set rngSearch = .Range("A23:F" & Lz).Find(What:=txtSearch, LookIn:=xlValues, LookAt:=xlPart, _
MatchCase:=False, After:=.Cells(23, 1))
If Not rngSearch Is Nothing Then
strFirst = rngSearch.Address
Do
If .Cells(rngSearch.Row, 3) = ComboBox1.Text Or ComboBox1.Text = "Alle" Then
ListBox1.AddItem .Cells(rngSearch.Row, 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(rngSearch.Row, 2)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(rngSearch.Row, 3)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(rngSearch.Row, 5)
ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(rngSearch.Row, 6)
ListBox1.List(ListBox1.ListCount - 1, 5) = .Cells(rngSearch.Row, 7)
End If
Set rngSearch = .Range("A23:F" & Lz).FindNext(rngSearch)
Loop While Not rngSearch Is Nothing And rngSearch.Address  strFirst
End If
End With
If ListBox1.ListCount = 0 Then ListBox1.AddItem "Kein Treffer!"
End If
End Sub
Besten Dank für die Hilfe und Servus, Walter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform - Codeänderung für Sortierung
28.02.2018 13:26:33
Daniel
Hi
da gibt's mehrere Möglichkeiten:
Variante a)
du durchsucht die Liste nicht von oben nach unten, sondern von unten nach oben, dh. der unterste Eintrag in der Excelliste wird der erste Eintrag in der Listbox.
hierzu musst du in der .Find-Funktion zusätzlich den Parameter SearchDirection:=xlPrevious angeben
Variante b)
du belässt die Suchrichtung von oben nach unten, fügst die neuen Eintrage aber nicht unten an die Listbox an, sondern oben.
Hierzu gibst du bei .AddItem zusätzlich die Indexnummer an, an welcher der Eintrag hinzugefügt werden soll, in deinem Fall die 0.
Beim hinzufügen der weitern spaltenwerte nimmst du dann diesen Listindex:
Listbox1.AddItem ListBox1.AddItem .Cells(rngSearch.Row, 1), 0
ListBox1.List(0, 1) = .Cells(rngSearch.Row, 2)

Gruß Daniel
Anzeige
Danke Daniel, werde ich ausprobieren. Servus Walte
28.02.2018 14:51:42
WalterK
;

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