mise en forme conditionnel

  • Initiateur de la discussion Initiateur de la discussion copayo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

copayo

Guest
Bonjour,

Je souhaiterais profiter de l'expérience de ce forum pour résoudre un problème simple mais que je n'arrive pas à résoudre.

Je voudrais mettre une coleur dans une celulle en fonction de sa valeur que je compare à une autre.

J'ai écrit ce petit code mais le résultat obtenu n'est pas ce que j'attends.

vert = 10
orange = 45

For Each A In Range('a2:a13 ')
For Each B In Range('b2:b13 ')
If A > B Then
B.Interior.ColorIndex = orange
Else: B.Interior.ColorIndex = vert
End If

Next B
Next A
End Sub

Auriez vous un peu de temps à m'acorder et m'apprendre à corriger mon erreur.

Merci par avance,
 
Bonjour,

Dans ta procédure, chaque cellule de la colonne A sont comparée à la cellule de la colonne B ce qui implique non pas 1 comparaison par cellule mais 13 comparaisons pour chaque cellules de A.

Si c'est une seule comparaison que tu veux, voici une petite boucle rapide:

Où c représente la cellule en court de traitement
Où c.offset(,1) fait référence à la cellule délcalée de une colonne à droite par rapport à c (soit la cellule de la colonne B)

Sub color()
Const VERT = 10
Const ORANGE = 45

Dim c As Range

For Each c In Range('A2:A13')
c.Interior.ColorIndex = IIf(c.Offset(, 1) > c, ORANGE , VERT)
Next c

End Sub


Mais encore plus simple serait de laisser Excel Gérer ce qui sait très bien faire: Les formats conditionnels.

1 Sélectionner la plage 'A2:A13' puis Menu Format/Mise en forme conditionnel

Liste 'Condition1': la valeur de la cellule est
Liste ' à droite' : supérieure à
puis zone encore à droite: =B2 (Excel adaptera automatiquement cette référence pour toute les cellule sélectionnées)

enfin bouton Format : Choisir la couleur de fond qui correspond à la condition. Valider

sur la fenêtre Format Conditionnels clicquez sur Ajouter et suivre la même procédure

La valeur de la cellule/ est inférieure à/ =B2
re-bouton format choisir deuxième couleur et valider le tout

Voilà le tour est joué!!!
 
Bonjour Gesco,

C génial ta première solution fonctionne à merveille, sauf que je voudrais récuperer la mise en forme sur la 2eme colonne (je te joint le fichier)



je peux pas utilier la mfc d'excel car j'importe la couleur par macro dans un graphique et il ne la reconnait pas donc ta macro est parfaite,



un grand merci
 
RE Bonjour

Si je comprend bien ta question voici une solution possible. Transforme la boucle :

For Each c In Range('A2:A13')
c.Interior.ColorIndex = IIf(c.Offset(, 1) > c, ORANGE , VERT)
Next c

En Boucle:

For Each c In Range('A2:A13')
c.Resize(,2).Interior.ColorIndex = IIf(c.Offset(, 1) > c, ORANGE , VERT)
Next c

Et les cellule de la colonne A et B seront coloriées
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
359
Réponses
7
Affichages
1 K
Retour