Comment créer une boucle de mise en forme des cellules [Résolu/Fermé]

Signaler
-
 lechtigars59 -
Bonjour,
Je me prends pas tête depuis des jours sur une macro que j'aimerais savoir faire. En faite, j'ai une liste de produit et j'aimerais mettre en couleur la valeur la moins chère.

Dans mon tableau j'aimerais faire la boucle suivante :
si a3=13 alors a3=couleur vert, si b3=i3 alors b3=couleur violet, si c3=i3 alors c3=couleur orange...et ceci pour les 150 lignes suivantes

....comment faire? je m'y perds moi avec les for..next


6 réponses

Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
Bonsoir lechtigars59,

tu dit: si a3=13 alors a3=couleur vert, si b3=i3 alors b3=couleur violet, si c3=i3 alors c3=couleur orange...et ceci pour les 150 lignes suivantes
Q1 : pour la cellule "A3" = i3 ou 13 ?
Q2 : comment vas-t-on trouver 150 couleurs différentes sur Excel ?
Q3 : Version d'Excel ?

oups j'ai fait une erreur je rectifie :
si a3=i3 alors a3=couleur vert, si b3=i3 alors b3=couleur violet, si c3=i3 alors c3=couleur orange..
pour la ligne suivante je veux la même chose.si a4=i4 alors a4=couleur vert, si b4=i4 alors b4=couleur violet, si c4=i4 alors c4=couleur orange...
et ceci pour les 150 lignes suivantes
Donc je n'ai que 3 couleurs différentes au choix selon la valeur de ma cellule.
La version d'excel...2007
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
En macro VBA ça te va ?

oui, c'est justement ce que je voulais, merci
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
Voilà ce que tu veux lechtigars59,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Ligne As Integer, Colonne As Integer
    Dim i As Long, j As Long
    Dim LigneMin As Integer, LigneMax As Integer
    '
    LigneMin = 1: LigneMax = 150
    '
    For i = LigneMin To LigneMax
        If (Cells(i, 1).Value = Cells(i, 9).Value) Then
            Range(Cells(i, 1), Cells(i, 1)).Font.ColorIndex = 4 ' vert
        End If
        If (Cells(i + 1, 1).Value = Cells(i, 9).Value) Then
            Range(Cells(i + 1, 1), Cells(i, 1)).Font.ColorIndex = 39 ' violet
        End If
        If (Cells(i + 2, 1).Value = Cells(i, 9).Value) Then
            Range(Cells(i + 2, 1), Cells(i, 1)).Font.ColorIndex = 46 ' orange
        End If
    Next i
End Sub

A placer dans le code de la feuille, dans la procedure dont le nom figure ci-dessus.

non ça ne changes rien...
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
Dépose ton classeur sur un site de stockage, tel que "www.cjoint.com" et donnes-nous le lien .. j'y jetterais un coup d'oeil.
Attention, veilles à supprimer les données sensibles.

voilà
http://cjoint.com/?3LquWlh7KFl
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
Ma version d'Excel est 2003.
Tu as supprimé la macro.

Dans la macro que j'avais établi, on comparais l'égalité entre une cellule de ligne "X" et de colonne "A" avec une cellule de ligne "X" et de colonne "I" .. est-ce ok ?

Puis, une cellule de ligne "X+1" et de colonne "A" avec une cellule de ligne "X" et de colonne "I" .. est-ce ok ?

Et pour finir, une cellule de ligne "X+2" et de colonne "A" avec une cellule de ligne "X" et de colonne "I" .. est-ce ok ?

plus précisément :
" Dans la macro que j'avais établi, on comparais l'égalité entre une cellule de ligne "X" et de colonne "A" avec une cellule de ligne "X" et de colonne "I"

Puis, une cellule de ligne "X" et de colonne "A+1" avec une cellule de ligne "X1" et de colonne "I"

Et pour finir, une cellule de ligne "X" et de colonne "A+2" avec une cellule de ligne "X" et de colonne "I"
Maintenant j'arrive a changer le format dans un autre classeur tout simplement en faisant la macro inverse à la suite de celle-ci. Mais sur mon classeur qui m'interesse, ça bloque...c'est peut etre tout simplement une option à décocher
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
1) Déjà, je ne comprend pas la première condition .. elle sera toujours fausse:
Colonne "A" contient un nom .. et colonne "I" contient des nombres,
c'est incompatible de comparer des pommes et des poires.

2) Dans la macro que tu avais acceptée, le problème est que l'on changeait de ligne et nom de colonne, alors c'est incorrect.

3) Ne dois-tu pas plutôt comparer les colonnes "D", "F" et "H" à la colonne "I" ?

si c'est exactement ça, je disais A et X pour reprendre l'exemple de la macro donné. Mais les colones exact à comparer sont bien les colones D-F-H avec I Désolé pour le quiproquo

mais là j'ai réussi. Alors je ne sais pas si c'est une bonne solution mais j'ai pris la macro et je l'ai copié en changeant les signes et en lui demandant de reprendre sa couleur de départ et là ça marche. Le code est plus grand mais pour le moment ça marche :)
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
Dépose le code sur "www.cjoint.com" et j'y regarderai .. si tu veux, bien sûr.

voilà le code tel que je l'ai mis sur mon classeur
http://cjoint.com/?3LqwGxv7BcK
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
Salut lechtigars59,

Donc, tu travailles avec 2 procédures "achat" et "prix" qui ne fonctionne que quand on les appelles, c'est ça ?
Si oui, quand tu changeras une valeur dans ta feuille, les cellules ne seront pas mises à jour de façon automatique !

Bonne soirée.

non effectivement, c'est pourquoi j'ai fait une macro inverse pour retomber sur un format de départ quand j'appelle la macro et que des valeurs change. Là j'essaie de faire pareil pour la première macro pour qu'il fasse : si valeur cellule (D;3) différent de valeur ( I;3) alors couleur blanc
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
84
Le problème c'est qu'on arrive pas à se mettre au même diapason.
J'essaie de trouver un code qui fonctionne et tu changes tout, tu me donne des codes qui n'ont plus rien à voir.

Comme cela, on peut passer des mois et ça sans avancer d'un poil.

Soit je ne pige pas (c'est possible) soit on ne se comprend pas !

Je cède ma place ...

ce n'est pas grave, tu m'as énormément aidé en me trouvant le code de départ. Maintenant je bidouille dessus mais j'ai ce qu'il me faut :) encore un grand merci à toi