Ich habe mal wieder ein Problem, das meine mehr als bescheidenen VBA-Kenntnisse
übersteigt. (Schäm) Ich habe in meiner Excel-Symbolleiste ein (gefundenes)Makro eingebaut,
mit dem ich über eine Inputbox nach einem Suchbegriff suchen kann.
Im aktiven Tabellenblatt wird nach dem Begriff gesucht und alle Fundstellen
nacheinander farbig markiert.
Das klappt hervorragend und hilft mir wirklich sehr bei der täglichen Arbeit.
Problem: Beim Verlassen der Zelle wird die Hintergrundfarbe jeweils von der
"Markierungsfarbe" auf "Keine Farbe" zurückgesetzt. Allerdings arbeite
ich auch mit farbigen Tabellen.Also erhalte ich "weiße" Flecken darin.
Frage: Wie muß der untenstehende Code geändert werden, damit eine Zelle auf ihre
ursprüngliche Hintergrundfarbe zurückgesetzt wird ?
Für Eure Hilfe bedanke ich mich schon jetzt recht herzlich !
Viele Grüße
Wolfgang
Sub SUCHE()
'Suchfunktion:
'Das Makro öffnet ein Eingabefenster,in dem nach Begriffen
'in einem Tabellenblatt gesucht wird.Der Cursor springt nacheinander
'zu den Fundstellen und markiert sie farbig. Mit dem Abbrechen-Button
'wird die Suche beendet.
Dim Result As Object, erg As Object
On Error Resume Next
thing = InputBox("Bitte Suchbegriff eingeben")
Cells("A1").Select
Set erg = Cells.Find(What:=thing)
ErsteZelle = erg.Address
erg.Activate
gefunden:
If Not erg Is Nothing Then
'Färben:
Static vZelle(2) As Variant
If Not IsEmpty(vZelle(2)) Then
With vZelle(0).Interior
.Color = vZelle(1)
.Pattern = vZelle(2)
End With
End If
Set vZelle(0) = ActiveCell
With vZelle(0).Interior
vZelle(1) = .Color
vZelle(2) = .Pattern
.Color = 44500 '
GoOn = MsgBox("Nächsten finden ?", vbOKCancel + vbQuestion, "Weitersuchen ?")
If GoOn = 1 Then
Set erg = Cells.FindNext(after:=ActiveCell)
erg.Activate
GoTo gefunden
Else
If erg Is Nothing Then
MsgBox "Nichts gefunden !", vbOKOnly + vbExclamation, "Hinweis"
End If
End Sub