Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

RESOLU - Format Conditionnel en vba

  • Initiateur de la discussion Initiateur de la discussion boudha74
  • 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 !

B

boudha74

Guest
Bonjour à tous,

je cherche à ecrire en vba la condition suivante :

Si Q2>S2 alors Range(Q2:S2) au "Format de couleur Rouge"
Si Q2 <S2 alors Range(Q2:S2) au "Format de couleur Jaune"
Si Q2 = S2 alors Range(Q2:S2) au "Format de couleur Verte"
...
Si Q3>S3 alors Range(Q3:S3) au "Format de couleur Rouge"
Si Q3 <S3 alors Range(Q3:S3) au "Format de couleur Jaune"
Si Q3 = S3 alors Range(Q3:S3) au "Format de couleur Verte"
.....

jusqu'a Q20>S20...

Merci de votre aide
 
Dernière modification par un modérateur:
Re : Format Conditionnel en vba

Re bonjour,

j'ai des soucis à le faire fonctionner avec le calcul d'heures plus précisement pour la formule qui verifie ces les deux valeurs sont égales, j'ai essayé de modifier les format... mais rien n'y fait... un coup ca marche un coup ca marche pas.

Enfin, j'aimerai que cela se mette à jour quand le champ heurecalculé est modifié dans la feuille calcul.

Merci de votre aide.
 

Pièces jointes

Dernière modification par un modérateur:
Re : Format Conditionnel en vba

Bonjour à tous,
Si tu colories tes cellules avec un programme qui colorie le fond de la cellule, tu va te heurter au problème de quand appeler le programme, sachant que c'est différent suivant que le changement de valeur est manuel ou non.
Je pense que ce serait plus simple d'avoir un véritable format conditionnel.
Si tu veux l'appliquer par un programme, tu peux adapter ce code (pour la feuille Calcul)
Code:
Range("A2:C20").Select
With Selection
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$A2>$C2"
    .FormatConditions(1).Interior.ColorIndex = 3
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$A2<$C2"
    .FormatConditions(2).Interior.ColorIndex = 6
    .FormatConditions.Add Type:=xlExpression, Formula1:="=ET($A2 = $C2; $A2 <> """")"
    .FormatConditions(3).Interior.ColorIndex = 4
End With
Si tu veux le faire manuellement, tu sélectionne la plage, Menu/Format/format conditionnel
ici pour la première ligne enA2C2
1ère formule :
Code:
=$A2>$C2
2ème formule :
Code:
=$A2<$C2
3ème formule :
Code:
=ET($A2 = $C2;   $A2 <> "")
Si tu veux étendre la plage tu sélectionnes une ligne de la plage et tu tires la poignée.
Tu peux apapter à la feuille Synthèse ces explications qui ont été faites pour la feuille calcul.
A+
 
Dernière édition:
Re : Format Conditionnel en vba

Merci pour ton aide, mais la condition qui passe en vert si les deux valeurs sont exactes ne fonctionne pas... il met la couleur jaune comme ci il appliquait l'autre condition à savoir SI A3 < R3.

Une idée ?
 
Re : Format Conditionnel en vba

Bonjour,

Je pars de l'hypothèse que les formats conditionnels ont été correctement remplis.

Je pense que tu es induit en erreur par le format heure qui affiche modulo 24h.
Supprime le format heure ou prends un format avec des crochets autour de l'heure [hh]
et tu t'apercevras que tu as effectivement A3 < R3

A+
 
Re : Format Conditionnel en vba

Re bonjour,

J 'ai utilisé ton code plutot que le format conditionnel....

je compris comment reproduire l'erreur...

Je fais une somme du nombre d heure sur une ligne et c'est cette somme que je compare avec une autre.
Si je mets une valeur manuellement sans passer par une somme ca fonctionne...
J 'ai bien pensé comme tu me la préciser a changer le format de date... mais c'est pareil... les deux cellules sont au meme format de date .....

Une idee ?
 
Re : Format Conditionnel en vba

Re,
Le problème n'est pas que les deux formats soient identiques
Il faut mettre des formats avec des crochets pour les heures [hh] ça permet d'afficher le nombre réel d'heures
sinon 25h sera affiché 1h mais restera supérieur à 2h
Il faut garder à l'esprit que les dates et les heures ont une valeur comptée en jours qui diffère de l'affichage. Les formules utilisent la valeur, pas l'affichage.
A+
 
Re : Format Conditionnel en vba

Bonjour Hippolite,

j'ai bien compris ce que tu m'as indiqué...mais je ne comprend pas comment regler ce probleme dès lors que j'ai un resultat à comparer qui provient d'un calcul

je te joints mon fichier, le code est sur la feuille synthése... je compare les cellulles R3 ET P3.

Merci de ton aide
 
Dernière modification par un modérateur:
Re : Format Conditionnel en vba

Bonjour,
Le problème vient des arrondis qui font que les deux valeurs ne sont pas vues égales par la MFC.
Utilise quelquechose comme
Code:
=ET(ARRONDI($P3;3) = ARRONDI($R3;3); $P3 <> "")
ou
Code:
=ET(ABS($P3 - $R3) < 0,001 ; $P3 <> "")
pour la condition d'égalité et place la en première condition
A+
 
Re : Format Conditionnel en vba

RE Hippolite,

désolé, mais je n'arrive pas à le mettre en place et à l'etendre au range P2:R21 afin qu'il compare à chaque fois les cellules P2 et R2,....,P21 et R21.

J'ai une erreur appel de le procedure.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("P3:R3").Select
 With Selection
     .FormatConditions.Delete
     .FormatConditions.Add Type:=xlExpression, Formula1:="=ET(ARRONDI($P3;3) = ARRONDI($R3;3); $P3 <> "")"
     .FormatConditions(1).Interior.ColorIndex = 4
     .FormatConditions.Add Type:=xlExpression, Formula1:="=$P3<$R3"
    .FormatConditions(2).Interior.ColorIndex = 6
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$P3>$R3"
    .FormatConditions(3).Interior.ColorIndex = 3
     

 End With

Merci de ton aide
 
- 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
7
Affichages
830
Réponses
10
Affichages
290
Réponses
0
Affichages
888
Réponses
6
Affichages
642
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…