Hier noch eine...
23.11.2018 02:45:00
Werner
Hallo Sandra,
...flexieblere Version. Dabei wird der Bereich (letzte belegte Zeile in Spalte B und letzte belegte Spalte in Zeile 1) durch das Makro ermittelt.
Option Explicit
Public Sub Sammeln()
Dim strSuch As String, strAusgabe As String
Dim raZelle As Range, raGesamt As Range
Dim loLetzte As Long, loSpalte As Long, i As Long
strSuch = "BMW"
With Worksheets("Fuhrpark")
loLetzte = .Cells(.Rows.Count, 2).End(xlUp).Row
loSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = 2 To loSpalte Step 2
If raGesamt Is Nothing Then
Set raGesamt = .Range(.Cells(1, i), .Cells(loLetzte, i))
Else
Set raGesamt = Union(raGesamt, .Range(.Cells(1, i), .Cells(loLetzte, i)))
End If
Next i
If WorksheetFunction.CountIf(.Range(.Cells(1, 2), .Cells(loLetzte, loSpalte)), strSuch) > 0 _
Then
For Each raZelle In raGesamt
If raZelle = strSuch Then
If strAusgabe = "" Then
strAusgabe = raZelle.Offset(, -1)
Else
strAusgabe = strAusgabe & ";" & raZelle.Offset(, -1)
End If
End If
Next raZelle
Else
MsgBox "Suchbegriff " & strSuch & " nicht gefunden."
End If
End With
MsgBox strAusgabe
Set raGesamt = Nothing
End Sub
Gruß Werner