Sowas ähnliches habe ich mir auch überlegt, aber ich weiß nicht wie ich die Anzahl der Abfragen dynamisch erzeugen kann..
Erstmal der Code zu der Kriterienabfrage:
Dim iKriterienZeile As Integer
Dim iKriterienSpalte As Integer
Dim sKriterien As Variant
Dim iPosKomma As Integer
Dim vArrayKriterien() As Variant
Dim iSizeArrayKriterien As Integer
Dim iZaehler As Integer
iKriterienZeile = 5
iKriterienSpalte = 2
'Wenn kein Kriterium in erste Zelle eingetragen ist, dann Abfrage nach Kriterien und Eintrag in Zellen
If Cells(iKriterienZeile, iKriterienSpalte) = "" Then
'Kriteren eingeben
sKriterien = InputBox("Bitte geben Sie Kriterien mit Komma getrennt an: Bsp: 334, W, 510")
'Jedes einzelne Kriterium eintragen
If InStr(1, sKriterien, Chr(44), vbTextCompare) > 0 Then
Do
iPosKomma = InStr(1, sKriterien, Chr(44), vbTextCompare)
Cells(iKriterienZeile, iKriterienSpalte).Value = Left(sKriterien, iPosKomma - 1)
sKriterien = Mid(Trim(sKriterien), iPosKomma + 1)
iKriterienSpalte = iKriterienSpalte + 1
Loop While InStr(1, sKriterien, Chr(44), vbTextCompare) > 0
Cells(iKriterienZeile, iKriterienSpalte).Value = sKriterien
Else
Cells(iKriterienZeile, iKriterienSpalte).Value = sKriterien
End If
End If
'Kriterien einzeln in vArrayKriterien einfügen
iKriterienSpalte = 2
iSizeArrayKriterien = Sheets("Setup").Cells(iKriterienZeile, iKriterienSpalte).End(xlToRight).Column - 1
ReDim vArrayKriterien(iSizeArrayKriterien - 1)
For iZaehler = 0 To iSizeArrayKriterien - 1
vArrayKriterien(iZaehler) = Cells(iKriterienZeile, iKriterienSpalte).Value
iKriterienSpalte = iKriterienSpalte + 1
Next iZaehler
Hier noch ein Bild von meinem Arbeitsblatt. Das sind aktuell 3 Kriterien, auf Basis dessen die Dateinamen durchsucht werden sollen. Die Anzahl kann jedoch variabel sein, es können auch 5 Kriterien oder nur 1 Kriterium sein.
|