problème avec VBA et les codes couleurs

Adrienne56

XLDnaute Nouveau
Bonjour à tous,
J'ai un problème avec une macro excel : je dois calculer le nombre de cellules écrites en rouge (ce qui signifie que l'objectif n'est pas atteint) mais certaines cellules viennent d'une autre source, ce qui fait que la valeur de la couleur n'est pas "3" (rouge) mais -4105 qui signifie "automatique". Or, le noir, le bleu, le vert peuvent également être codés à -4105 si leur couleur est automatique. Coment différencier dans mon code, les couleurs réellement rouges ?
j'ai essayé en marquant tout bonnement "rouge" mais ça ne marche pas...

je précise que j'utilise "Cel.Font.ColorIndex" en déclarant cel comme "Dim Cel As Range"

donc la propriété que j'utilise est Font.ColorIndex (je balaie toute les cellule d'une plage...)
Merci par avance...
 

Adrienne56

XLDnaute Nouveau
Re : problème avec VBA et les codes couleurs

ouais ! j'ai compris pour le premier chiffre : la condition est que s'il est inférieur au premier chiffre, il passe au rouge. Mais le deuxième ? (les deux chiffres que j'ai rajoutés ne ramènent pas de valeur, donc ok)
 

Adrienne56

XLDnaute Nouveau
Re : problème avec VBA et les codes couleurs

super !!!! j'ai testé, j'ai augmenté la valeur d'une cellule jusqu'à dépasser celle de la condition et elle est passée au vert. Donc, il suffit que je demande si la cellule est rouge OU si elle est rouge ET qu'il y a un format conditionnel !

elle est pas belle, la vie ?

Je te l'élève comment, ta statue ?
 

Adrienne56

XLDnaute Nouveau
Re : problème avec VBA et les codes couleurs

Catrice... j'ai encore besoin de ton aide...

je suis tellement fatiguée que je n'arrive plus à penser. Comment programmer la recherche, cellule par cellule, dans une plage de données, des cellules mises en forme ? parce que dans ce tableau, il y a vraiment de tout...
 

Catrice

XLDnaute Barbatruc
Re : problème avec VBA et les codes couleurs

Bonsoir,

super !!!! j'ai testé, j'ai augmenté la valeur d'une cellule jusqu'à dépasser celle de la condition et elle est passée au vert. Donc, il suffit que je demande si la cellule est rouge OU si elle est rouge ET qu'il y a un format conditionnel

Heu, non, pas Super ...

Si j'ai bien compris ce que tu veux faire et bien cerné ce que pouvait faire Excel, je crois que tu n'es pas sortie de l'auberge ;)

Pour résumer : tu veux scanner une zone et faire une action si les cellules ont une police rouge.

Mais en fait la police de la cellule n'est pas rouge. C'est la MFC qui applique la couleur (verte ou rouge).
ActiveCell.Font.ColorIndex renvoie (ou affecte) l'index de couleur defini (ou souhaité) à la police de la cellule.
ActiveCell.Interior.ColorIndex renvoie (ou affecte) l'index de couleur defini (ou souhaité) au fond de la cellule.
FormatConditions(n).Font.ColorIndex renvoie (ou affecte) l'index de couleur defini (ou souhaité) à la police de la Condition ! Pas de la cellule.

=> FormatConditions(n).Font.ColorIndex n'affecte pas le ActiveCell.Font.ColorIndex

Il faut donc (d'apres mon raisonnement) scanner chaque cellule, voir si elle est numerique et non vide, voir s'il y a une MFC dessus.
Si il y a une MFC, regarder les 1, 2 et/ou 3 conditions et voir laquelle a le Font.ColorIndex = 3 (rouge).
On en déduit l'operateur (=, >, <, etc.) et la valeur à testée.
On vérifie par rapport à la cellule active si c'est OK ou NOK et là on peut executer quelque chose ... ouf ...

C'est ce que fait la macro jointe.
Elle met en rose le fond de la cellule si ça répond au critère (on pourrait faire n'importe quelle autre opération).

De plus, si on a choisi de saisir la MFC en Formule (voir partie basse du tableau), là pour évaluer la formule ça a l'air d'etre encore plus dur. Je me suis arreté là.

Conclusion.
Soit tu connais le critere qui passe les cellules en rouge, ici 75, et tu fais un test sur cette valeur dans ta macro. Fastoche.
Soit tu ne le connais pas et il faut faire une petite usine à gaz pour chercher les criteres.
Mais si les criteres sont en Formule, ça se complique. Et si les ColorIndex sont differents selon les machines (non-testé) il peut y avoir des problèmes.


Peut-etre que quelqu'un aura une meilleure solution...
 

Pièces jointes

  • exemple de couleurs2.xls
    26 KB · Affichages: 106
Dernière édition:

Statistiques des forums

Discussions
312 428
Messages
2 088 344
Membres
103 821
dernier inscrit
Lorient56