Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1456to1460
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

Wortsuche im Userform (Listbox)

Wortsuche im Userform (Listbox)
14.11.2015 17:19:12
Matthias
Hallo Forumgemeinde,
in meinem aktuellen Projekt habe ich eine "Produktsuche" eingefügt,
Diese gibt, wenn ich textbox1 enter drücke in einer Listbox die ergebnisse wieder,
Soweit so gut, dies Funktioniert auch.
Mein Problem was ich habe, ist das nur 10 spalten wiedergegeben werden.
ich benötige aber 42 spalten.
BSP.:

Die Datei https://www.herber.de/bbs/user/101512.xlsm wurde aus Datenschutzgründen gelöscht


kann mir jemand helfen dieses Problem zu beheben?
Liebe grüße und vielen Dank im Vorraus
Matthias Dietz

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wortsuche im Userform (Listbox)
14.11.2015 17:45:07
Nepumuk
Hallo,
teste mal:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Dim s As String
        Dim Found As Range
        Dim FirstAddress As String
        Dim lngRow As Long, lngColumn As Long, lngFoundRow As Long
        Dim avntValues()
        ' On Error Resume Next
        
        s = Trim(TextBox1.Text) 'Sucheingabe über Textbox1 steuern
        If s = "" Then Exit Sub
        ListBox1.Clear
        With Tabelle4
            Set Found = Tabelle4.Cells.Find(what:=s, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
            
            If Not Found Is Nothing Then
                FirstAddress = Found.Address
                ListBox1.ColumnCount = 40 'Gibt die Werte der gefundenen Treffer an (Spaltenbezogen)
                Do
                    
                    lngFoundRow = Found.Row
                    
                    Redim Preserve avntValues(1 To 40, 0 To lngRow)
                    
                    For lngColumn = 1 To 40
                        avntValues(lngColumn, lngRow) = Tabelle4.Cells(lngFoundRow, lngColumn).Value
                    Next
                    
                    Set Found = Tabelle4.Cells.FindNext(after:=Found)
                    If Found.Address = FirstAddress Then Exit Do
                    lngRow = lngRow + 1
                Loop
                
                ListBox1.Column = avntValues
                
            End If
        End With
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Wortsuche im Userform (Listbox)
14.11.2015 17:51:01
Sepp
Hallo Matthias,
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim varItem As Variant, varList() As Variant, lngI As Long

If KeyCode = 13 Then
  s = Trim(TextBox1.Text) 'Sucheingabe über Textbox1 steuern
  If s = "" Then Exit Sub
  ListBox1.Clear
  ListBox1.ColumnCount = 42
  With Tabelle4
    Set Found = .Cells.Find(what:=s, LookAt:=xlPart)
    If Not Found Is Nothing Then
      FirstAddress = Found.Address
      Do
        varItem = .Range(.Cells(Found.Row, 1), .Cells(Found.Row, 42))
        Redim Preserve varList(lngI)
        varList(lngI) = varItem
        lngI = lngI + 1
        Set Found = .Cells.FindNext(after:=Found)
      Loop While Not Found Is Nothing And Found.Address <> FirstAddress
    End If
  End With
  If lngI > 0 Then ListBox1.List = Application.Transpose(Application.Transpose(varList))
End If
End Sub

Gruß Sepp

Anzeige
AW: Wortsuche im Userform (Listbox)
14.11.2015 18:39:33
Matthias
Hallo
Vielen dank an sepp und nepumuk, funktionieren beide,
nur jetzt gibt die listbox das gefundene immer zweimal wieder.
wo habe ich da den fehler sitzen?
Vielen dank im vorraus
LG MAtthias Dietz

AW: Wortsuche im Userform (Listbox)
14.11.2015 18:40:44
Sepp
Hallo Matthias,
also sowohl bei meinem als auch bei Nepumuks Code, wird nichts zwei mal eingelesen!
Gruß Sepp

Datei
14.11.2015 18:42:38
Sepp
Hallo Matthias,
anbei deine Datei mit meinem Code. Ich habe noch eine Routine zum automatischen Anpassen der Spaltenbreite der Listbox eingefügt.
https://www.herber.de/bbs/user/101514.xlsm
Gruß Sepp

Anzeige
AW: Datei
14.11.2015 18:53:12
Matthias
Hallo sepp,
ich zweifle ja nicht an euch, sondern an mir. wie gesagt wenn ich etwas such gibt die listbox die Produkte zweimal wieder.....
bei deiner datei bekomme ich die fehlermeldung laufzeit fehler 9...
beim debbugen markiert excel folgendes....
For iCol = LBound(theList, 2) To UBound(theList, 2)
vielen danke für deine mühe

AW: Datei
14.11.2015 18:53:42
Matthias
frage wieder offen...

AW: Datei
14.11.2015 19:00:25
Matthias
Hallo sepp,
wenn ich zb.: das wort Top oder Aqua suche, funktioniert deine datei
suche ich jetzt aquatop kommt der laufzeitfehler
LG matthias

AW: Datei
14.11.2015 19:25:24
Matthias
Hallo Forumgemeinde,
natürlich war das mein (Denk)fehler, wenn ich ein wort such, das mehrmals in der zeile vorkommt, gibt er es natürlich zwei mal wieder......
Ich danke euch für eure hilfe.
@sepp:
woran liegt der laufzeitfehler wenn das wort eine gewisse länge überschreitet, ich kann mir dies nicht erklären.
Vielen Dank im vorraus
LG Matthias

Anzeige
AW: Datei
14.11.2015 19:30:17
Sepp
Hallo Matthias,
da war ein Fehler in meinem Code. Die doppelten, die Ursache hast du ja selber erkannt, hab ich aus ausgemerzt.
https://www.herber.de/bbs/user/101515.xlsm
Gruß Sepp

AW: Datei
15.11.2015 00:34:36
Matthias
Hallo Forumgemeinde,
Hallo Sepp,
Vielen Dank für deine Hilfe dieser Code Funktioniert Perfekt.
LG Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige