Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
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

Listbox Eintrag wählen u. auf Blatt Zeile anzeigen

Listbox Eintrag wählen u. auf Blatt Zeile anzeigen
20.06.2018 22:28:30
Felix
Hallo liebe Excel Experten,
mit der Hilfe von Werner konnte ich meine Tabelle sehr effektiv verfeiern und habe im allgemeinen bisher sehr viel Hilfe und Input bekommen. Durch viel Nachlesen und probieren habe ich meine Tabelle auch bereits stark erweitern können.
Nun stoße ich jedoch an ein kleines Problem und komme nicht weiter. Mir gehen sogar die Suchbegriffe in Google aus und ich sehe den Wald vor lauter Bäumen nicht mehr.
Ich habe in meiner Tabelle einen Button über den wird eine UserForm aufgerufen. Auf dieser befinden sich eine ListBox, eine TextBox und 3 CommandButton (Suche starten, Suchergebnis anzeigen und Abbrechen).
Die Tabelle reicht von A6:AO20000 und in A5:AO5 stehen die Überschriften.
Die ListBox ist 10 spaltig, damit der User die Suchergebnisse unterscheiden kann.
Der Suchbegriff kann irgendwo im Bereich A6:AO20000 zu finden sein.
Ich soll dass über VBA lösen, da sich viele Kollegen und Kolleginnen wohl von der Excel eigenen Suchfunktion erschlagen fühlen. Ich frage mich zwar warum... aber naja... ich soll es nach Möglichkeit richten. Menschen lassen sich nicht so leicht ändern wie Code... (ein ermutigendes Zitat von meinem Chef).
In die TextBox kann der User einen Suchwert eingeben. In der ListBox werden alle Ergebnisse mit diesem Suchwert ausgegeben.
Soweit funktioniert alles super.
Nun möchte ich dass aber so gestalten, dass wenn eine Zeile in der ListBox ausgewählt und auf den CommandButton "Suchergebnis anzeigen" geklickt, dann genau die Zeile mit dem ausgewähltem Suchergebnis selektiert wird.
Mit meinem bisherigen Code wird mir immer nur dass erste Ergebnis der Listbox angezeigt und die komplette Zeile selektiert. Kommt dass dadurch, dass ich im Anzeigen Button den Suchwert = ListBox1.Value definiere?
Weiß jemand wie ich das realisieren kann bzw. wo mein Fehler oder auch Denkfehler ist?
Ich poste noch meinen bisherigen Coda dazu.
Mit diesem befülle ich die ListBox:
Private Sub cmdSuchen_Click()
Dim s As String
Dim Found As Range
Dim firstaddress As String
Dim i As Integer
On Error Resume Next
i = 0
s = TextBox1.Value
If s = "" Then
MsgBox "Bitte geben Sie einen Suchbegriff ein!", vbExclamation, "Hinweis!"
Exit Sub
End If
ListBox1.Clear
With ActiveSheet
Set Found = .Cells.Find(what:=s, LookAt:=xlPart)
If Not Found Is Nothing Then
firstaddress = Found.Address
ListBox1.ColumnCount = 10
Do
ListBox1.AddItem Found
ListBox1.List(i, 1) = Cells(Found.Row, 3)  'hier habe ich die wichtigen Spalten gewählt
ListBox1.List(i, 2) = Cells(Found.Row, 4)
ListBox1.List(i, 3) = Cells(Found.Row, 5)   ' auf diese Spalte 5 könnte ggf. verzichtet  _
werden
ListBox1.List(i, 4) = Cells(Found.Row, 6)
ListBox1.List(i, 5) = Cells(Found.Row, 7)
ListBox1.List(i, 6) = Cells(Found.Row, 8)
ListBox1.List(i, 7) = Cells(Found.Row, 10)
ListBox1.List(i, 8) = Cells(Found.Row, 11)
ListBox1.List(i, 9) = Cells(Found.Row, 12)
Set Found = Cells.FindNext(after:=Found)
If Found.Address = firstaddress Then Exit Do
i = i + 1
Loop
End If
End With
End Sub

Und mit diesem Soll dass ausgewählte Suchergebnis angezeigt werden:
Es ist nur SingleSelect möglich in der ListBox
Private Sub cmdAnzeigen_Click()
Dim Suchergebnis As Variant
Dim Suchwert As String
Suchergebnis = Empty
If ListBox1.ListIndex >= 0 Then
With ActiveSheet.Range("A6:AO20000")
Suchwert = ListBox1.Value
Set Suchergebnis = .Find(what:=Suchwert, LookIn:=xlValues)
If Not Suchergebnis Is Nothing Then Suchergebnis.Rows.EntireRow.Select Else Exit Sub
End With
Else
MsgBox "Bitte wählen Sie eine Ergebniszeile aus!", vbExclamation, "Hinweis!"
Exit Sub
End If
Unload UserForm8
Set Suchergebnis = Nothing
End Sub

Ich danke Euch vielmals im Voraus für Eure Hilfe und tatkräftige Unterstützung!
Dazu wünsche ich noch einen schönen Abend.
Lieben Gruß
Felix

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox Eintrag wählen u. auf Blatt Zeile anzeigen
21.06.2018 07:50:46
Luschi
Hallo Felix,
warum 2-mal suchen? Nimm in die Lstbox die Zeilennummer des gefundenen Suchbegriffes mit auf und stelle die Breite dieser Spalte der Listbox auf '0cm':
ListBox1.List(i, 1) = Found.Row
Gruß von Luschi
aus klein-Paris
AW: Listbox Eintrag wählen u. auf Blatt Zeile anzeigen
21.06.2018 10:09:23
Felix
Hallo Luschi,
deinen Tipp habe ich umgesetzt. In der ListBox wird jetzt auch die Zeilennummer angezeigt. Ist doch auch ganz praktisch und nützlich für den User.
Nur stelle ich mich momentan zu doof an um genau diese Zeile auf dem Tabellenblatt zu selektieren/ auszuwählen, wenn der User sie in der UserForm ausgewählt hat. Und egal in welche Spalte der ListBox der User klickt, es soll immer die entsprechende Zeile aufgerufen werden.
Ich habe es auch schon im Doppelklick Event der ListBox probiert, allerdings komme ich da über die MessageBox, die mir die Zeile zu Testzwecken anzeigt nicht hinaus.
Das habe ich im Doppelclick Event erfasst:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "Ergebnis gefunden in folgender Zeile: " & ListBox1.List(ListBox1.ListIndex, 1), _  _
vbInformation + vbOKOnly, "Fund"
End Sub
Vielen Dank für deinen Tipp Luschi. Vielleicht kannst du mir ja nochmal einen Denkanstoß geben.
LG
Felix
Anzeige
AW: Listbox Eintrag wählen u. auf Blatt Zeile anzeigen
21.06.2018 18:36:31
Felix
Hallo Luschi,
jetzt habe ich mich nochmal hinein gekniet und meinen ganzen Grips zusammen genommen und es hat geklappt.
Ich habe es jetzt wie folgt gelöst:
Dim ws As Worksheet
Dim Zeile As Long
Set ws = ActiveSheet
Dim SelectedItem As String
If Me.ListBox1.ListIndex -1 Then
SelectedItem = Me.ListBox1.List(Me.ListBox1.ListIndex)
Zeile = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
Zeile = ws.Rows(Zeile).EntireRow.Select
End If
Unload UserForm8
Danke dir für deinen Input.
LG
Felix

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige