Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Suchanfrage mit mehreren Kriterien
20.07.2016 20:18:19
Hermelin
Hallo Zusammen
Folgendes Problem
Ich habe ein Tabellenblatt mit 5 Spalten.
Nun versuche ich via TextBox die entsprechenden Zeilen zu finden. Je mehr TextBoxen (5) ich mit Suchkriterien bestücke, desto genauer sollte die Trefferquote in der Listbox sein. Wo habe ich den Fehler in meiner Formel?
Private Sub cmdSuchen_Click()
Dim Ing As Long
Dim i As Integer
Application.ScreenUpdating = False
With frm_Daten
.ListBox1.Clear
Sheets("Adressliste").Activate
i = 0
For Ing = 3 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(Ing, 1).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(Ing, 1).Value
.ListBox1.Column(1, i) = Cells(Ing, 2).Value
.ListBox1.Column(2, i) = Cells(Ing, 3).Value
.ListBox1.Column(3, i) = Cells(Ing, 4).Value
.ListBox1.Column(4, i) = Cells(Ing, 5).Value
.ListBox1.Column(5, i) = Ing
i = i + 1
Else
End If
Next Ing
End With
frm_Daten.Label42.Caption = frm_Daten.Label42.Caption
frm_Daten.Label43.Caption = frm_Daten.Label43.Caption
frm_Daten.Label44.Caption = frm_Daten.Label44.Caption
frm_Daten.Label45.Caption = frm_Daten.Label45.Caption
frm_Daten.Label46.Caption = frm_Daten.Label46.Caption
Application.ScreenUpdating = True
End Sub
Danke für die Hilfe im voraus

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

Betreff
Datum
Anwender
Anzeige
AW: Suchanfrage mit mehreren Kriterien
23.07.2016 06:28:33
fcs
Hallo Hermelin,
wenn du weitere Kriterien in Textboxen eingibst, dann musst du sie natürlich auch in eine entsprende Prüfung im Makro einbauen. z.B. so:
   For Ing = 3 To ActiveSheet.UsedRange.Rows.Count
If (.TextBox1.Value = "" _
Or InStr(LCase(Cells(Ing, 1).Value), LCase(.TextBox1.Value)) > 0) _
And (.TextBox2.Value = "" _
Or InStr(LCase(Cells(Ing, 2).Value), LCase(.TextBox2.Value)) > 0) _
And (.TextBox3.Value = "" _
Or InStr(LCase(Cells(Ing, 3).Value), LCase(.TextBox3.Value)) > 0) _
And (.TextBox4.Value = "" _
Or InStr(LCase(Cells(Ing, 4).Value), LCase(.TextBox4.Value)) > 0) _
And (.TextBox5.Value = "" _
Or InStr(LCase(Cells(Ing, 5).Value), LCase(.TextBox5.Value)) > 0) Then
.ListBox1.AddItem Cells(Ing, 1).Value
Gruß
Franz
Anzeige
AW: Suchanfrage mit mehreren Kriterien
24.07.2016 22:23:00
Piet
Hallo,
den langen unübersichtlichen Prüf Code kann man etwas übersichtlicher schreiben.
Erleichtert mir den Durchblick beim Programmieren. z.b. so wie unten, über Txt1 ...
Was ich aber garnicht verstanden habe ist dieser Teil? Wie funktioniert der wirklich
frm_Daten.Label42.Caption = frm_Daten.Label42.Caption
Von der Logik her wird der Überschrift - die gleiche Überschrift neu zugewiesen!
Was aendert sich denn dabei? Das verstehe ich nicht so ganz?
mfg Piet
Dim Txt1, Txt2, Txt2, Txt4, Txt5
Dim Wert1, Wert2, Wert3, Wert4, Wert5
Txt1 = LCase(.TextBox1.Value)
Txt2 = LCase(.TextBox2.Value)
Txt3 = LCase(.TextBox3.Value)
Txt4 = LCase(.TextBox4.Value)
Txt5 = LCase(.TextBox5.Value)
Wert1 = LCase(Cells(Ing, 1).Value)
Wert2 = LCase(Cells(Ing, 2).Value)
Wert3 = LCase(Cells(Ing, 3).Value)
Wert4 = LCase(Cells(Ing, 4).Value)
Wert5 = LCase(Cells(Ing, 5).Value)
If (Txt1 = "" Or InStr(Wert1, Txt1) > 0) And _
(Txt2 = "" Or InStr(Wert2, Txt1) > 0) And _
(Txt3 = "" Or InStr(Wert1, Txt1) > 0) And _
(Txt4 = "" Or InStr(Wert1, Txt1) > 0) And _
(Txt5 = "" Or InStr(Wert1, Txt1) > 0) Then

Anzeige

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige