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

Suche per Vba

Suche per Vba
16.05.2016 08:03:38
Michael
Hallo an alle hier im Forum,mit folgendem Code suche ich aus Textbox4 eine Nummer in Listbox2.
Gebe ich jetzt die Nummer 214 in die Textbox ein, wird mir die Nummer 2149 in der Listbox markiert.
Kann mir da jemand was zu sagen?
Gruß Michael

Private Sub TextBox4_Change()
Dim i As Integer, ii As Integer
Dim vntList, strTxt As String, arrSelected()
strTxt = LCase(TextBox4)
vntList = ListBox2.List
ReDim arrSelected(ListBox2.ListCount - 1)
For i = 0 To ListBox2.ListCount - 1
For ii = 0 To ListBox2.ColumnCount - 1
arrSelected(i) = InStr(LCase(vntList(i, ii)), strTxt) > 0
If arrSelected(i) Then Exit For
Next
Next
With ListBox2
For i = 0 To .ListCount - 1
.Selected(i) = arrSelected(i)
Next
End With
End Sub

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche per Vba
16.05.2016 08:42:48
ChrisL
Hi Michael
Aktuell hantierst du mit einem Textstring
strTxt As String
strTxt = LCase(TextBox4)
und prüfst, ob der Teilstring "214" im Gesamttext "xxxx2149xxxx" vorkommt.
InStr(LCase(vntList(i, ii)), strTxt)
Wenn es immer Ganzzahlen (Datentyp Long) sind z.B.
If CLng(vntList(i, ii)) = CLng(TextBox4) Then ListBox2.Selected(i) = True
(ich denke der Umweg über arrSelected() ist nicht nötig und du kannst bereits innerhalb der ersten Schleife selektieren)
cu
Chris

AW: Suche per Vba
16.05.2016 11:24:05
Michael
Hallo Chris, vielen Dank erstmal,
die Suche klappt jetz, aber wenn ich die Textbo jetzt lösche sagt er mir Typen unverträglch Laufzeitfehler 13!
Er mag das 0 To nicht wenn die Zelle leer ist.
Wie bekomme ich das behoben.
Gruß Michael

Anzeige
AW: Suche per Vba
16.05.2016 12:04:06
ChrisL
Hi Michael
Vielleicht so...
If Not IsNumeric(TextBox4) Then Exit Sub
cu
Chris

AW: Suche per Vba
16.05.2016 13:43:48
Michael
Hallo nochmal an alle Helfer
Werners Idee hatte ich auch schon probiert, aber ohne Erfolg.
If Not IsNumeric(TextBox4) Then Exit Sub war die Lösung!
Danke an alle Helfer
Gruß Michael

AW: Suche per Vba
16.05.2016 14:03:21
Michael
Son Mist,
er meckert auch bei leerer Listbox (Index ausser gültigen Bereich
und markiert diesn Code: ReDim arrSelected(ListBox2.ListCount - 1)
Wie kann ich den Fehler abfangen?
Das geht nicht: If ListBox2 = "" Then Exit Sub

AW: Suche per Vba
16.05.2016 14:12:03
Hajo_Zi
Hallo Michael,
prüfe
ListBox2.ListCount
Den wert kannst Du Dir ja anzeigenlassen bei leer.

Anzeige
AW: Suche per Vba
16.05.2016 14:37:38
Michael
Hallo Hajo,
Geht leider nicht
Private Sub TextBox4_Change()
Dim i As Integer, ii As Integer
Dim vntList, strTxt As String, arrSelected()
strTxt = LCase(TextBox4)
vntList = ListBox2.List
ReDim arrSelected(ListBox2.ListCount - 1)
For i = 0 To ListBox2.ListCount - 1
For ii = 0 To ListBox2.ColumnCount - 1
If ListBox2.ListCount = "" Then Exit Sub
If Not IsNumeric(TextBox4) Then Exit Sub
If CLng(vntList(i, ii)) = CLng(TextBox4) Then ListBox2.Selected(i) = True
If arrSelected(i) Then Exit For
Next
Next
With ListBox2
For i = 0 To .ListCount - 1
.Selected(ii) = arrSelected(i)
Next
End With
End Sub

Anzeige
AW: Suche per Vba
16.05.2016 14:48:16
Hajo_Zi
Du möchtest also nicht auf meinen Beitrag Antworten. Gut ich kann damit leben. Ich sehe nicht was ich geschrieben habe. Ich vermute mal Du hast ihn nicht komplett gelesen. Ansonsten wäre nicht dieser Code
If ListBox2.ListCount = "" Then
raus gekommen.
numerische Werte vergleicht man nicht mit Text.
Ich bin dann raus, da nicht auf meine Antworten geantwortet wird.
Gruß Hajo

AW: Suche per Vba
16.05.2016 16:46:55
Michael
Hallo Hajo, ich bin sehr dankbar für die Hilfe hier im Forum!
Aber auf deine Hilfe würde ich in Zukunft gerne verzichten.
Deine Antworten sind für Anfänger meist schwer zu verstehen und ich bemühe mich immer!! bevor ich hier jemanden belästige, dass Internet zu durchsuchen.
Leider gelingt es mir oft auch nach Stunden nicht das richtige zu finden.
Du fühlst dich immer angegriffen wenn man deine kurzen und knappen Antworten nicht versteht.
Ich habe schon einige solcher Beiträge von dir hier im Netz gesehen wo du schreibst "ich bin raus".
Trotzdem Danke für deine Mühe
Gruß Michael

Anzeige
geschlossen o.T.
18.05.2016 08:30:28
ChrisL
.

AW: Suche per Vba
16.05.2016 16:09:34
Nepumuk
Hallo,
teste mal:
Private Sub TextBox4_Change()
    Dim i As Integer, ii As Integer
    If IsNumeric(TextBox4.Text) Then
        With ListBox2
            .ListIndex = -1
            For i = 0 To .ListCount - 1
                For ii = 0 To .ColumnCount - 1
                    If Clng(.List(i, ii)) = Clng(TextBox4.Text) Then
                        .Selected(i) = True
                        Exit For
                    End If
                Next
            Next
        End With
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Suche per Vba
16.05.2016 16:33:31
Michael
Hallo Nepumuk,
klappt jetz super! Vielen Dank für dein Hilfe.
Gruß Michael

AW: Suche per Vba
16.05.2016 12:08:41
Werner
Hallo Michael,
das sollte doch gehen wenn du vor dem Vergleich deiner Textbox mit der ListBox die Textbox auf ungleich leer prüfst.
If CLng(TextBox4)  "" Then
If CLng(vntList(i, ii)) = CLng(TextBox4) Then ListBox2.Selected(i) = True
Gruß Werner

AW: Suche per Vba
16.05.2016 12:56:37
Nepumuk
Hallo Werner,
CLng mit "" zu vergleichen ist aber auch nicht das Wahre.
Gruß
Nepumuk

AW: @Chris u. Nepumuk
16.05.2016 13:12:13
Werner
Hallo,
stimmt, nachdem ich die Antwort von Chris gelesen hatte ist es mir auch wie Schuppen aus den Haaren gefallen.
Gleich zwei Fehler in meiner Antwort: Natürlich muss auf IsNumeric geprüft werden und ich hätte vor dem Senden auch noch mal aktualisieren sollen.
Sry Werner

Anzeige
AW: Suche per Vba
16.05.2016 08:45:02
Nepumuk
Hallo,
du suchst mit der InStr-Methode und 214 ist in 2149 enthalten.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige