Comment changer couleur?

M

Morocco

Guest
Bonjour le Forum,

SVP, je cherche une macro qui me permet:

- de repérer les cellules de toutes les feuilles du classeur et dont la couleur de la police est bleu,

- puis la changer en couleur rouge.


Merci bcp
 
O

omicron

Guest
Bonsoir Morroco,

Pour obtenir le résultat escompté il suffit de programmer dans la macro que tu auras choisie les instructions suivantes :

======================================================
ColorIndex_Avant = 5 ' <<< A régler 5 correspond à un bleu
ColorIndex_Apres = 3 ' <<< A régler 3 correspond à un rouge

For each Sht in Sheets
For each Cel in Sht.UsedRange.Cells
If Cel.Font.ColorIndex=ColorIndex_Avant then
Cel.Font.ColorIndex=ColorIndex_Apres
Endif
Next Cel
Next Sht
======================================================

Attention! il faut que tu connaisses pécisemment les valeurs à utiliser pour ColorIndex_Avant et ColorIndex_Apres. Si tu ne les connais pas tu peux enregistrer une macro et modifier la couleur de la font utilisée pour une cellule d'abord en bleu puis en rouge. Tu verras en lisant la macro les valeurs de Font.ColorIndex utilisées à chaque fois.

Une autre façon de faire consiste à prendre deux cellules étalon l'une avec une fonte bleue et l'autre avec une fonte rouge, et à coder

======================================================
' Paramétrage cellule dont la fonte à le bleu choisi ex A1
set Etalon_Avant= Range("A1")

' Paramétrage cellule dont la fonte à le rouge choisi ex A2
set Etalon_Apres= Range("A2")

For each Sht in Sheets
For each Cel in Sht.UsedRange.Cells
If Cel.Font.ColorIndex=Etalon_Avant.Font.ColorIndex and _
Cel.Address <> Etalon_Avant.Address and _
Cel.Address <> Etalon_Apres.Address _
Then
Cel.Font.ColorIndex=Etalon_Apres.Font.ColorIndex
Endif
Next Cel
Next Sht
======================================================

Remarque : Le test de Cel.Address sert à éviter de modifier la couleur des cellules utilisées comme étalon.

Je pense que celà fonctionne mais n'ai pas testé. Si tu as d'éventuelles difficultés, n'hésite pas à en faire part.

Cordialement.

Omicron.
 
R

Robert

Guest
Salut Morocco, salut le forum,

Le problème est qu'il n'y a pas qu'un bleu et que je ne sais pas lequel tu as choisi. La macro ci-dessous fonctionnera si nous avons le même bleu sinon il te faudra l'adapter :

Sub Macro1()
'première boucle sur toutes les feuilles du classeur
For Each sh In Sheets
sh.Select 'sélectionne la feuille
'deuxième boucle sur les toutes les cellules utilisées de la feuille
For Each cel In sh.UsedRange
If cel.Font.ColorIndex = 5 Then 'condition : si couleur de police est bleu
cel.Font.ColorIndex = 3 'la couleur passe au rouge
End If 'fin de condition
Next cel 'prochaine cellule
Next sh 'prochaine feuille
End Sub

À plus,

Robert
 
R

Robert

Guest
Salut Omicron, re Morocco

Omicron, juste deux mots : Bra-Vo... et désolé d'être intervenu car je n'avais pas réactualiser. Mais après tes explications il n'y avait rien à rajouter.

À plus,

Robert
 

Statistiques des forums

Discussions
313 060
Messages
2 094 924
Membres
106 128
dernier inscrit
lopierre