Hallo Billy
Ich hatte die Einschränkung auf z.B. nur 3 Werte und den
kleinen zu durchsuchenden Bereich gemacht um nicht allzu viel
Aufwand zu provozieren.
Am Aufwand ändert sich kaum etwas. Es geht jetzt also um die Spalten A:B insgesamt.
Weiter habe ich im Makro drei Suchbegriffe definiert: ED, KL, PQ
An welcher Stelle die Ergebnisse ausgegeben werden ist im Grunde egal.
In meinem Makro habe ich vorgesehen, dass die Ausgabe in den Zellen D2:smiley:xx erfolgt, für jeden Suchbegriff eine entsprechende Zelle.
Ich nahm an, bzw. nehme noch immer an, dass das im Nachgang
noch leicht von mir zu ändern bzw. erweiterbar wäre.
Selbstverständlich!
Aber wahrscheinlich bin ich als absoluter VBA-Novize mal wieder zu naiv.
Wenn Du den Begriff Novize erwähnst, kennst Du Dich vielleicht auch aus im katholischen Ordensrecht: Du wirst die zeitlichen „VBA-Professen“ problemlos ablegen können. Für die feierliche oder ewige Profess wird es wohl nur den wenigsten von uns Laien-VBA-Anwendern je reichen: Man hat da nie ausgelernt!
Hier nun Variante 2 des Makros. Wenn Du Fragen dazu hast, dann weisst Du ja, wo Du eine Antwort erhalten kannst. Viel Erfolg und viele Grüsse Niclaus
Sub LoesungV2()
Dim iZahl, yZahl, z As Integer
Dim strLoesung As String
Dim strSuche(5) As String: yZahl = 5
' Wenn mehr als 5 Suchbegriffe nötig wären,
' müssten hier die beiden Zahlen entsprechend erhöht werden.
strSuche(1) = "ED"
strSuche(2) = "KL"
strSuche(3) = "PQ"
' Die Suchbegriffe müssen/sollten lückenlos durchnummeriert werden.
Tabelle1.Range(Cells(2, 4), Cells(2 + yZahl - 1, 4)).ClearContents
For z = 1 To yZahl
strLoesung = ""
If strSuche(z) = "" Then GoTo finis1
For iZahl = 2 To Tabelle1.UsedRange.Rows.Count + 1
If Tabelle1.Cells(iZahl, 1) = strSuche(z) \_
And Not IsEmpty(Tabelle1.Cells(iZahl, 2)) Then
strLoesung = strLoesung & " " & Tabelle1.Cells(iZahl, 2) & ","
End If
Next iZahl
finis1:
If Len(strLoesung) = 0 Then strLoesung = "- "
strLoesung = Trim(Left(strLoesung, Len(strLoesung) - 1))
Tabelle1.Cells(z + 1, 4) = strLoesung
Next z
End Sub