Mise en forme conditionnelle en VBA

Bonjour !

Je souhaiterai appliquer une MFC (jeu 3 icônes) afin de vérifier ou checker la valeur renseignée en fonction d'une autre valeur. Je m'explique :

J'ai un premier tableau avec des valeurs à renseigner (ex : feuille 1, range A1;A10). Dans un second temps ces valeurs peuvent évoluer ou non. Après avoir ajouté ces nouvelles valeurs dans un second tableau identique (ex : feuille 2, range B1:B10), je souhaiterai que le jeu d'icône indique si la valeur nouvellement renseignée est égale à l'ancienne, supérieure, inférieure.

Quelqu'un à t-il une idée ?

Merci pour votre aide !

BOB

Salut,

Faut -il obligatoirement du VBA ?

Voici un piste de reflexion avec une vrai MFC.

Les valeurs ne sont que des nombres ? ou il peut y avoir des chaines de charactères ?

A+

Bonjour,

Merci pour votre réponse.

En réalité il s'agit de tableau avec des prix et nombres d'heures. Avant négociation et après négociation.

Il s'ajoute en fonction du nombre de candidats qui répondent.

Le VBA me permet "d'automatiser cela" sans avoir à ajouter une MFC pour chaque cellule.

Je vous joint mon fichier en question.

Les valeurs de base sont sur la feuille "Offres AVN" et les nouvelles valeurs sont sur "Offres APN"

Il s'agira uniquement de nombre.

4amo-v14.zip (953.92 Ko)

J'aimerai que la MFC (la même avec les 3 icônes) soit sur la range D8:G15 / D26:G33 / ... en fonction des mêmes ranges sur la feuille AVN

Ce sont ces valeurs la à comprarer ?

Et la longueur du tableau peux varier c'est cela ?

Par contre la colonne à comparer restera la même ? seul le numéro de ligne s'incrémentera ?

Dsl de poser autant de questions ^^

image

Pas de soucis ^^

Le tableau ne change pas de taille, que ce soit en Offre AVN ou Offre APN.

Les valeurs à comparer sont nombreuses et pour chaque tableau. Je ne l'avais pas décris dans ma demande initiale pour ne pas trop en demander =)

Voici les valeurs en question (encadrées en rouge) :

image

Ce tableau est renseigné une première fois dans la feuille "Offres AVN" puis une fois la nouvelle offre reçue, les nouvelles valeurs sont renseignées dans la feuille "Offres APN". Et autant de fois qu'il y a de candidat. (Il y autant de candidats en Offres AVN que en Offres APN)

J'aimerai que la MFC compare l'ensembles des valeurs nouvellement inscrites avec les anciennes valeurs dans la feuille "Offres AVN".

Est-ce plus clair ? ^^

Et avec cette MFC tu cherches à obtenir l'ecarts de valeurs entre cellules si il existe ou plutot juste a faire ressortir des anomalies ? dans le cas ou les tableaux ne sont pas identiques

Je souhaiterai le même jeu d'icône que tu as pris dans ton fichier. (3 triangles il me semble)

Et il faudrait "simplement" l'icône correspondant dans la cellule pour chaque valeur.

Ex: si aucun changement de prix ou nombre d'heure -> trait orange, ....

Pour la valeur de l'écart je l'ajouterai avec une formule uniquement sur le récap à droite avec les prix TTC

Bon, pour le jeux d'icône ça me semble pas évident.et en VBA ca ferait bcp de code je t'avoue je suis a cours d'idée j'ai essayé pleins de choses j'esperais trouver une solution avec les MFC classique Excel

Dsl..

Pas de soucis, merci de m'avoir consacré du temps =)

Je laisse le post ouvert, si jamais quelqu'un a une idée ^^

Bonjour,

Un test sans icône car par défaut cette MEFC n'accepte pas de références relatives. Je respecte tout de même le code couleur orange/vert/rouge.

Dans l'attente de votre retour.

Cdlt,

4amo-v14.zip (952.82 Ko)

Re, j'ai du me sou-estimer

Les jeux d'icônes n'acceptent pas les références relativeves mais acceptent les références avec $ donc on peux les créer via VBA !

J'ai pondu ça du coup:

Sub Arrow()
n = 8
Dim IDcell(28) As String
While n < 2000

IDcell(0) = "$D$" & n
IDcell(1) = "$D$" & n + 1
IDcell(2) = "$D$" & n + 2
IDcell(3) = "$D$" & n + 3
IDcell(4) = "$D$" & n + 4
IDcell(5) = "$D$" & n + 5
IDcell(6) = "$D$" & n + 6
IDcell(7) = "$D$" & n + 7
IDcell(8) = "$E$" & n
IDcell(9) = "$F$" & n
IDcell(10) = "$F$" & n + 1
IDcell(11) = "$F$" & n + 2
IDcell(12) = "$F$" & n + 3
IDcell(13) = "$F$" & n + 4
IDcell(14) = "$F$" & n + 5
IDcell(15) = "$F$" & n + 6
IDcell(16) = "$F$" & n + 7
IDcell(17) = "$G$" & n
IDcell(18) = "$H$" & n
IDcell(19) = "$H$" & n + 1
IDcell(20) = "$H$" & n + 2
IDcell(21) = "$H$" & n + 3
IDcell(22) = "$H$" & n + 4
IDcell(23) = "$H$" & n + 5
IDcell(24) = "$H$" & n + 6
IDcell(25) = "$H$" & n + 7
IDcell(26) = "$H$" & n + 9
IDcell(27) = "$H$" & n + 10
IDcell(28) = "$H$" & n + 11
For i = 0 To 28
    Range(IDcell(i)).Select
    Selection.FormatConditions.AddIconSetCondition
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1)
        .ReverseOrder = False
        .ShowIconOnly = False
        .IconSet = ActiveWorkbook.IconSets(xl3Triangles)
    End With
    With Selection.FormatConditions(1).IconCriteria(2)
        .Type = xlConditionValueNumber
        .Value = "='Offres AVN'!" & IDcell(i)
        .Operator = 7
    End With
    With Selection.FormatConditions(1).IconCriteria(3)
        .Type = xlConditionValueNumber
        .Value = "='Offres AVN'!" & IDcell(i)
        .Operator = 5
    End With
Next i
n = n + 18
Wend
End Sub

Si tu as bien selectionné la feuille OFFRES APN

la magie opère.

La macro est prévu pour 111 tableaux, mais si tu penses en avoir plus suffit d'augmenter la valeur ici: 2000/18 = 111 tableaux

While n < 2000

A+

Merci à vous deux ! je vais tester cela demain

Bonne fin de journée !

Salut, d'ailleur je n'ai pas vraiment précisé mais ma macro est à executer une seule fois pour mettre en place les MFC, ensuite tu peux la supprimer et naviguer dans ton onglet sans probleme, attention tout de meme à ne pas déplacer les tableaux ! sinon ca risque de crée un décallage entre les cellules concernées et celles contenant les MFC

Rechercher des sujets similaires à "mise forme conditionnelle vba"