Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1556to1560
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
Tabelle nach mehreren Kriterien durchsuchen
15.05.2017 14:09:31
Lisa
Hallo zusammen,
ich habe mit VBA eine User Form programmiert, mit der man eine Liste nach mehreren Kriterien durchsuchen kann (WNV, Verfahrensnummer, Lack, Glanz, Sachnummer).
Das funktioniert soweit auch ganz gut, jedoch habe ich festgestellt, dass nicht immer nur in der gewollten Spalte gesucht wird.
Beispiel: In der Tabelle steht WNV in Spalte B, Farbe in Spalte D, Sachnummer in Spalte F.
Ich suche nach der Farbe "70", die anderen Suchfelder werden freigelassen. Nun erscheint im Suchergebnis auch die Farbe 46, da ihre Sachnummer die 70 enthält.
Allerdings passiert das nur bei Spalten, die rechts von meiner Suchspalte liegen. Eine WNV 70 wird zum Beispiel nicht mit angezeigt.
Ich stehe ein bisschen auf dem Schlauch, könnt ihr mir vielleicht auf die Sprünge helfen?
Viele Grüße
Lisa
Private Sub Cmd_Suchen_Click()
Dim Bereich As Range
Dim Zelle As Range
Dim Box_Leer As Boolean
box_Suchergebnis.Clear
Box_Leer = True
'Listbox formatieren
With box_Suchergebnis
.Clear
.ColumnCount = 7
strWidth = (.Width) / 7
.ColumnWidths = strWidth & ";" & strWidth & ";" & strWidth + 10 & ";" _
& strWidth - 10 & ";" & strWidth & ";" & strWidth & ";" & strWidth
End With
'Suchbereich bestimmen
With Worksheets("Konsolidierung").UsedRange
strSuche = .Cells(.Rows.Count, .Columns.Count).Address
Set Bereich = Range("B2:" & strSuche)
End With
If txt_WNV.Value = "" And txt_Verfahrensnummer.Value = "" And txt_Farbe.Value = "" _
And txt_Glanz.Value = "" And txt_Sachnummer.Value = "" Then
MsgBox ("Bitte geben Sie mindestens ein Suchkriterium ein")
Else
For Each Zelle In Bereich
If (Zelle.Value Like "*" & txt_WNV.Value & "*" Or txt_WNV.Value = "") _
And (Zelle.Offset(0, 1) Like "*" & txt_Verfahrensnummer.Value & "*" _
Or txt_Verfahrensnummer.Value = "") _
And (Zelle.Offset(0, 2) Like "*" & txt_Farbe.Value & "*" _
Or txt_Farbe.Value = "") _
And (Zelle.Offset(0, 3) Like "*" & txt_Glanz.Value & "*" _
Or txt_Glanz.Value = "") _
And (Zelle.Offset(0, 4) Like "*" & txt_Sachnummer.Value & "*" _
Or txt_Sachnummer.Value = "") Then
'Suchergebnis in Listbox schreiben
With box_Suchergebnis
.AddItem
.List(.ListCount - 1, 0) = Cells(Zelle.Row, 2)
.List(.ListCount - 1, 1) = Cells(Zelle.Row, 3)
.List(.ListCount - 1, 2) = Cells(Zelle.Row, 4)
.List(.ListCount - 1, 3) = Cells(Zelle.Row, 5)
.List(.ListCount - 1, 4) = Cells(Zelle.Row, 6)
.List(.ListCount - 1, 5) = Cells(Zelle.Row, 7)
End With
Box_Leer = False
End If
Next
If Box_Leer = True Then MsgBox ("Keine Daten gefunden")
End If
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Tabelle nach mehreren Kriterien durchsuchen
15.05.2017 15:50:10
fcs
Hallo Lisa,
due muss in diesem Abschnitt des Makros
'Suchbereich bestimmen
With Worksheets("Konsolidierung").UsedRange
strSuche = .Cells(.Rows.Count, .Columns.Count).Address
Set Bereich = Range("B2:" & strSuche)
End With
die letzte Zeile bestimmen und den Bereich nur für Spalte B Setzen.
'Suchbereich bestimmen
With Worksheets("Konsolidierung").UsedRange
lngZeile = .Rows.Count
Set Bereich = Range("B2:B" & lngZeile )
End With
Später wird ja dann mit Zelle.Offset(0, x)die zu vergleichende Zelle festgelegt.
LG
Franz
Anzeige
AW: Tabelle nach mehreren Kriterien durchsuchen
16.05.2017 07:49:13
Lisa
Herzlichen Dank, es funktioniert! :)

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige