Changer couleur

Résolu
Viperestrike Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
Viperestrike Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
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 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
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   Statut Membre Dernière intervention  
 
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   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Combien de lignes comporte la colonne A?

--
0
Viperestrike Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Modérateur Dernière intervention   2 761 > Viperestrike Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Ha oui, pas de soucis. Un maximum de 400 lignes me semble pas mal.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup, ça fonctionne parfaitement !!
J'aurais jamais réussi à trouver ça tout seul, super ;)
0