Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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
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?

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

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

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige