wieder mal beschäftig mich ein Problem:
Ich habe eine Datei mit vielen Tabellenblättern, die alle geschützt sind bis auf die Spalte B.
Mit dem folgenden Code suche ich nach Namen in der Spalte A:
Public Sub SearchAllTables(Optional sBlattname$)
Dim ws As Worksheet
Dim c
Dim firstAddress As String, sSearch
Dim secAddress
Dim GFound As Boolean
Dim GWeiter As Boolean
GWeiter = False
GFound = False
anf:
If sBlattname = "" Then
Set ws = ActiveSheet
Else
Set ws = ActiveWorkbook.Sheets(sBlattname)
If ws.Visible xlSheetVisible Then
If MsgBox("Blatt """ & sBlattname & """ ist zur Zeit ausgeblendet." _
& vbLf & vbLf & "Suche nicht möglich! Blatt jetzt einblenden?", _
vbInformation + vbYesNo, "Suche in Tabellenblatt") = vbNo Then
Exit Sub
Else
ws.Visible = xlSheetVisible
End If
End If
End If
sSearch = InputBox("Suche" & " nach:", "Search In All Tables", sSearch)
If sSearch = "" Then
Exit Sub
End If
weiter:
With ws.Cells
Set c = .Find(sSearch, LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
Selection.Offset(0, 1).Select
firstAddress = c.Address
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbYes Then
Do
Set c = .FindNext(c)
secAddress = c.Address
If c.Address = firstAddress Then
Exit Do
End If
c.Select
Selection.Offset(0, 1).Select
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbNo Then
GWeiter = True
GoTo ende
End If
Loop While Not c Is Nothing And secAddress firstAddress And c.Address _
firstAddress
Else
GWeiter = True
GoTo ende
End If
End If
End With
ende:
If GFound = False Then
If MsgBox("Suchwert nicht gefunden ! Neue Suche ?", vbInformation + vbYesNo) = vbYes _
Then
GoTo anf:
End If
Else
If GWeiter = False Then
If MsgBox("Sie haben das Tabellenblatt durchsucht ! Soll die Suche neu gestartet _
werden ?", vbInformation + vbYesNo) = vbYes Then
GoTo weiter
End If
End If
End If
End Sub
Funktioniert auch super. Die Namen werden gefunden und der Cursor springt automatisch in die Spalte B auf gleicher Höhe wie der gefundene Name.
Ich hätte nun gerne, dass die Zelle in Spalte B die dem Namen in Spalte A entspricht, farbig markiert wird. Ein schönes Lindgrün oder zartes Blau wäre super. Wichtig ist, dass man die Eingabe, die in Spalte B gemacht wird, ohne Probleme noch lesen kann.
Wenn der Suchvorgang erfolglos war und man weitersucht, dann soll die Farbe wieder verschwinden.
Ebenso soll die Farbe verschwinden, wenn man eine Eingabe gemacht hat und eine neue Suche startet.
DAs Einfärben soll also nur dazu dienen, die entsprechende Zelle in Spalte B besser kenntlich zu machen. Es soll nicht permanent sein und verschwinden, wenn weiter gesucht wird, wenn eine Eingabe erfolgt oder wenn die Suche abgebrochen wird.
Gibts hier ne Möglichkeit?
Wäre super
Einen schönen Tag wünscht
Jochen