465 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen und einen schönen ersten Advent,

kurzer Daten Überblick:

-in einer Tabelle im Bereich A1 bis E1 kann zb. das Wort "Hallo" 1 mal oder auch mehrfach vorkommen

-alle Zellen in diesem Bereich haben eine bedingte Formatierung
wenn leer dann grün, wenn beschrieben dann rot

mögliche Varianten:

Hallo

Hallo 1

usw.

-es stehen auch andere Wörter in diesem Bereich

Ist es möglich mit einem Button ein Makro auszulösen welches mir alle Zellen mit dem Wort Hallo farblich makiert zb. gelb und diese Markierung nach 5 sec. wieder aufhebt so das meine bedingte Formatierung erhalten bleibt?

Gruß
energun222

5 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo energun222,
wenn Zellen schon eine bedingte Formatierung haben,
ist es nicht möglich die Farben mit einem Makro zu verändern.

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo,

was wäre wenn die Zellen keine bedingte Formatierung hätten sondern nur normal eingefärbt? Könnte denn ein Makro eine Farbe zur Herstellung der Markierung erstellen und danach den Ursprung wiederherstellen?

Oder vielleicht so: Suche Übereinstimmung -> kopiere diese und füge sie in ein verdecktes/anderes Blatt ein -> setze Markierung -> warte zb. 5sec. -> kopiere das eben noch in ein anderes Blatt kopierte und füge es im originalen wieder ein. Ist vielleicht ein bissl dreckig könnte es aber so in etwa funktionieren?

Gruß
energun222
0 Punkte
Beantwortet von
Hallo nochmal,

hab da was gefunden was auch funktioniert wenn bedingte Formatierung aktiv ist.

hier das Original:

Sub Suchen()

With Worksheets(1).Range("A5:L25")
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Interior.Pattern = xlPatternLightUp
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

End Sub


hier der veränderter Code:

Sub Suchen_Hallo()

Sheets("BSF").Range("A5:K7").Copy Sheets("BSF_2").Range("A5")
Sheets("BSF").Range("A14:G16").Copy Sheets("BSF_2").Range("A14")
Sheets("BSF").Range("A23:L25").Copy Sheets("BSF_2").Range("A23")

With Worksheets(1).Range("A5:L25")
Set c = .Find("Hallo", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Interior.Pattern = xlPatternLightUp
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Application.Wait Now + TimeSerial(0, 0, 5)

Sheets("BSF_2").Range("A5:K7").Copy Sheets("BSF").Range("A5")
Sheets("BSF_2").Range("A14:G16").Copy Sheets("BSF").Range("A14")
Sheets("BSF_2").Range("A23:L25").Copy Sheets("BSF").Range("A23")

End Sub


Es wird alles aus den angegebenen Bereichen kopiert und in ein ausgeblendetes Blatt eingefügt, anschließend das Markiermakro ausgeführt 5sec. gewartet und die Daten aus dem ausgeblendeten Blatt kopiert und in die Originale eingefügt. Soweit funktioniert es auch nur bekomm ich es nicht auf die Reihe das er mir die Felder zb. gelb macht. Bekomme es nur mit Mustern hin welche es auch als Beispiele im Netz gibt.

Ich hab es zb. ,mit

Interior.ColorIndex = 37


probiert nur passiert dann garnix. Bei

Interior.Pattern = xlPatternGray75


sieht man sofort eine Änderung.

Jemand eine Ahnung warum und wie das geht.


Gruß
energun222
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

wenn du
c.Interior.Pattern = xlPatternLightUp

durch
c.Interior.ColorIndex = 37

werden die Zellen mit "Hallo" blau gefärbt.
Wenn du die Zellen Gelb färben willst, dann setze den Wert auf 27 oder nutze statt ColorIndex einfach Color:
c.Interior.Color = vbYellow


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

es scheint doch so zu sein das wenn eine bedingte Formatierung "hier eine Farbe" gesetzt wurde man diese nicht durch eine andere Farbe ersetzten kann aber durch ein Muster. Sehr eigenartig.:-)

Gruß und Danke an alle
energun222
...