Ich habe bisher dank Dr. Google immer irgendwie eine Antwort auf meine Fragen gefunden, komme mit meinem jetzigen Problem aber nicht mehr weiter und eröffne hiermit meinen ersten Beitrag. Ich hoffe, ihr könnt mir helfen.
Zu meinem Problem. Ich habe eine Arbeitsmappe mit mehreren Tabellenblättern. In der Tabelle werden Vorgänge zu verschiedenen Personen geführt. Ein Tabellenblatt dient dazu die neuen Fälle einzutragen. In zwei Spalten werden die Namen der verantwortlichen Personen erfasst. Eine Routine überwacht die Änderung der Spalten, in denen die Personennamen eingetragen werden. Wird dort eine Zelle verändert, startet eine Suche auf einem anderen Tabellenblatt und überprüft, ob der Name dort schon ein Mal vorkommt. Dies funktioniert soweit.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrorHandler
If Not Application.Intersect(Target, Range("C:D")) Is Nothing Then
SearchStr = Cells(Target.Row, Target.Column)
a = 0
With Worksheets("Aktive Fälle").Range("C:D")
Set Found = .Find(SearchStr, Lookat:=xlWhole)
If Not Found Is Nothing Then
firstAddress = Found.Address
Do
a = a + 1
Set Found = .FindNext(Found)
Loop While Not Found Is Nothing And Found.Address firstAddress
End If
End With
If Found Is Nothing Then
MsgBox ("Leider nichts gefunden")
UF_SuchErgebnis.Show
Else
MsgBox (a & "* gefunden")
End If
End If
ErrorHandler:
Application.EnableEvents = True
On Error GoTo 0
End Sub
Die Messagebox dient aktuell dazu, die Tätigkeit des Codes zu überprüfen, wird später dann aber nicht mehr benötigt.Das Ziel wäre nun, dass das/die Suchergebniss/e (ganze Zeile in denen der Name vorkommt) in einer Listbox ausgegeben wird. Schön wäre zudem, wenn die Zeilenüberschriften, welche in der Zeile 2 stehen (deshalb funktioniert ColumnHeads = True nicht), ebenfalls mit in der Listbox ausgegeben werden würden.
Ich danke euch jetzt bereits für eure Unterstützung.
Gruss
Max