Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabelle nach mehreren Kriterien durchsuchen

Tabelle nach mehreren Kriterien durchsuchen
23.07.2015 12:29:09
Uli
Hallo,
ich habe ein Tabellenblatt mit 20 Spalten. Dazu habe ich eine Userform entworfen, die diese Tabelle nach mehreren Kriterien durchsuchen und die zutreffenden Zeilen in eine neue Tabelle schreiben soll.
Die Suchkriterien betreffen Spalte 12, 17 und 19.
Beispiel: Spalte 12 trifft zu, Spalte 17 nicht, Spalte 19 ja.
Ist sicher nicht so schwer, aber ich bekomme es nicht richtig hin.
Mein Code lautet:
Private Sub cmdOK_Click()
Set acs = ActiveSheet
Set quelle = Worksheets("Anträge") 'Quellblatt bestimmen
Set ziel = Worksheets("Ergebnisse Anträge") 'Zielblatt bestimmen
ziel.[a4:t20000].ClearContents 'Spalten auf Zielblatt löschen
quelle.Activate 'Quellblatt aktivieren
zq = 4 'aktuelle Zeile auf Quellblatt
zz = 4 'aktuelle Zeile auf Zielblatt
Do
If zq > 1000 Then Exit Do
If Me.cboObjektOrt = quelle.Cells(zq, 12)
And me.cbomaßnahme = quelle.cells(zq, 19) then
ziel.Cells(zz, 1) = quelle.Cells(zq, 1)
ziel.Cells(zz, 2) = quelle.Cells(zq, 2)
ziel.Cells(zz, 3) = quelle.Cells(zq, 3)
zq = zq + 1
zz = zz + 1
Else
zq = zq + 1
End If
Loop
End Sub

In diesem Fall ist das Ergebnis zwar korrekt. Wenn ich aber in meiner Userform andere Kriterien auswähle (Bsp: Spalte 17 weglasse), dann wird das Ergebnis falsch.
Wie muß meine Schleife lauten, damit ich alle Eventualitäten erwische?

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Tabelle nach mehreren Kriterien durchsuchen
23.07.2015 13:05:27
Rudi
Hallo,
bspw.
dim strMatch as string
strMatch = iif(cboObjektOrt.Listindex>-1,cboObjektOrt,"*")
strMatch = strMatch & iif(cboSpalte17.Listindex>-1,cboSpalte17,"*")
strMatch = strMatch & iif(cboMaßnahme.Listindex>-1,cboMaßName,"*")
if quelle.Cells(zq, 12) & quelle.Cells(zq, 17) & quelle.Cells(zq, 19) Like strMatch Then
ziel .cells(zz,1)=quelle.cells(zq,1)
End If

Gruß
Rudi

Anzeige
AW: Tabelle nach mehreren Kriterien durchsuchen
23.07.2015 13:14:59
Beni
Hallo Uli
übergib das Suchkriterium einer Variabel, wenn leer. dann "*", sonst such nach leeren Zellen.
Beni
If Me.cboObjektOrt = "" Then OBO = "*" Else OBO = Me.cboObjektOrt
If Me.cbomaßnahme = "" Then MSN = "*" Else MSN = Me.cbomaßnahme
Do
If zq > 1000 Then Exit Do
If OBO = quelle.Cells(zq, 12) _
And MSM = quelle.Cells(zq, 19) Then
ziel.Cells(zz, 1) = quelle.Cells(zq, 1)
ziel.Cells(zz, 2) = quelle.Cells(zq, 2)
ziel.Cells(zz, 3) = quelle.Cells(zq, 3)
....
zq = zq + 1
zz = zz + 1
Else
zq = zq + 1
End If
Loop
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige