Changer couleur

Résolu/Fermé
Viperestrike Messages postés 7 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 6 octobre 2016 - 19 avril 2016 à 17:03
Viperestrike Messages postés 7 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 6 octobre 2016 - 20 avril 2016 à 16:44
Bonjour,

J'aimerais faire une macro Excel permettant d'alterner la couleur lorsque la valeur change d'une ligne à l'autre dans la colonne A.
J'ai le fichier ci-dessous :





Et j'aimerais que la macro fasse ça :




J'ai essayer de faire une boucle sans succès
Merci de votre aide.

3 réponses

Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181
19 avril 2016 à 17:27
Bonjour,

Ce site peut te débloquer sur plusieurs points :
https://www.excel-pratique.com/fr/vba.php
- Leçon sur les boucles
- Leçon sur les feuilles et cellules pour les couleurs.

Pour détecter le changement de valeur, tu peux utiliser une variable intermédiaire qui stocke la valeur de la cellule qui passée en revue et qui est gardée telle quelle jusqu'au tour de boucle suivante où elle pourra servir de comparaison.
0
Viperestrike Messages postés 7 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 6 octobre 2016
20 avril 2016 à 08:47
Bonjour,

Merci pour votre réponse.
J'ai déjà été sur ce site, j'avais fait une boucle mais je n'ai pas réussi à colorer toutes les cases ayant le même nom de la même couleur (c'était soit le premier, soit la dernière case qui restait sans couleur)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
20 avril 2016 à 06:41
Bonjour,

Combien de lignes comporte la colonne A?

--
0
Viperestrike Messages postés 7 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 6 octobre 2016
20 avril 2016 à 09:13
Bonjour,

En fait, le nombre de ligne de la colonne A varie. Le nombre de ligne pour un même fournisseur peut aussi varier.
C'est une extraction hebdomadaire de toutes les nouvelles commandes chez mes fournisseurs.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > Viperestrike Messages postés 7 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 6 octobre 2016
20 avril 2016 à 09:22
Oui, ok, d'accord. Mais peux tu nous donner un ordre d'idée du nombre maxi de lignes?
100, 1 000, 10 000, 100 000...
0
Viperestrike Messages postés 7 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 6 octobre 2016
20 avril 2016 à 10:50
Ha oui, pas de soucis. Un maximum de 400 lignes me semble pas mal.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
20 avril 2016 à 11:26
Voici :
Adapte ce qui doit l'être...
    Sub Colore()
        Dim Wsh As Worksheet, PremLig As Integer, DrLig As Integer, Col As Integer, DrCol As Integer
        Dim Couleur As Integer, Couleur_1 As Integer, Couleur_2 As Integer
        
        Set Wsh = Worksheets("Feuil1")  'A ADAPTER : Nom de la feuille
        Col = 1                         'A ADAPTER : Numéro de la colonne à traiter  (ici A)
        DrCol = 10                      'A ADAPTER : Numéro de la dernière colonne à colorer
        PremLig = 1                     'A ADAPTER : Numéro de la première ligne traitée (ici 1)
        Couleur_1 = 3                   'A ADAPTER : Couleur n° 1
        Couleur_2 = 27                  'A ADAPTER : Couleur n° 2
        
        Couleur = Couleur_1
        With Wsh
            DrLig = .Columns(Col).Find("*", , , , , xlPrevious).Row
            For Lig = PremLig To DrLig
                .Range(.Cells(Lig, Col), .Cells(Lig, DrCol)).Interior.ColorIndex = Couleur
                If .Cells(Lig, Col).Value <> .Cells(Lig + 1, Col).Value Then
                    Couleur = IIf(Couleur = Couleur_1, Couleur_2, Couleur_1)
                End If
            Next Lig
        End With
    End Sub

0
Viperestrike Messages postés 7 Date d'inscription mercredi 6 avril 2016 Statut Membre Dernière intervention 6 octobre 2016
20 avril 2016 à 16:44
Merci beaucoup, ça fonctionne parfaitement !!
J'aurais jamais réussi à trouver ça tout seul, super ;)
0