2.9k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo liebe Excel bzw vba Experten. Ich habe eine Suchfunktion für Excel 2003 programmiert, die über die ganze Tabelle und alle Zellen sucht und die entsprechenden Treffer farbig markiert. Um eine neue Suche zu starten soll die Farbmakierung gelöscht werden:

Sub Schaltfläche8_BeiKlick()
Dim Blatt As Worksheet

For Each Blatt In ThisWorkbook.Worksheets
Blatt.Cells().Interior.ColorIndex = xlColorIndexNone
Next Blatt
End Sub

Funktioniert auch einwandfrei. Das Problem jedoch ist, dass dieser makro die Farben aus allen Zellen nimmt , also auch zB die Überschrift etc.

Nun die Frage: Wie bekomme ich hin, dass der makro nur die Farbe der durch die Suchanfrage makierten Zellen löscht bzw zurücksetzt.

Vielen Dank im vorraus

3 Antworten

0 Punkte
Beantwortet von peko Mitglied (235 Punkte)
Hi Oldirty,

am einfachsten siehst du für die Treffermarkierung eine andere Farbe vor als für die übrigen Farbkennzeichnungen.

In deiner Markierungs-Löschroutine müsstes du dann allerdings in jedem Blatt jede Zelle separat (Schleifenprogrammierung für Zeilen und Spalten) auf diese Farbmarkierung abfragen und diese bei Bedarf zurücksetzen lassen.

Abarbeitung durch VBA dauert natürlich etwas länger als deine Routine.

Gruß
Peter
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Nick,

nur über eine Schleife über den Benutzeten Bereich und jede einzelne Zelle prüfen
For Each Zelle In Worksheets("Tabelle1").UsedRange
If zelle.Interior.ColorIndex= 6 Then zelle.Interior.ColorIndex = xlColorIndexNone
Next Zelle

Gruß Hajo
0 Punkte
Beantwortet von
Hallo Leute,

vielen Dank für eure Antworten und besonders an Hajo. Manchmal ist die Lsg so naheliegend,dass man nicht drauf kommt :D

Viele Grüße
...