IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA macro pour colorer colonne avec conditions [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2021
    Messages : 2
    Par défaut VBA macro pour colorer colonne avec conditions
    Bonjour, j'ai écris une macro qui créée une nouvelle colonne dans ma feuille pour ensuite appliqué une formule (=RIGHT) pour récupérer une partie du contenu de la colonne C et ensuite colorer chaque case de la nouvelle colonne (donc ici B) en comparant la cellule (i,2) = B2 et (i+1, 2) = B3 et ainsi de suite avec i = 2 to 200
    sauf que les 2 conditions que j'ai mis respecte la consigne jusqu'à arriver à une cellule différente de celle d'avant et là c'est inversion des couleur

    ce que je souhaite c'est différentier la suite des lignes par une couleur (si même valeur c'est même couleur sinon alterner entre deux couleurs)

    sur la photo on voit bien que la ligne 3 et 4 ont la même valeur mais de couleur différente

    Nom : Capture.PNG
Affichages : 104
Taille : 20,4 Ko

    voici le code, merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Public Sub MACRO1()
     
    Sheets("Historique de production NEOP4").Columns(2).Insert
     
    Dim nbLignes As Long
     
    nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
    Range("$B$2:B" & nbLignes).Formula = "=RIGHT(C2, 6)"
     
    Dim i As Integer
     
    For i = 2 To 200
     
        If Cells(i, 2).Value <> Cells(i + 1, 2).Value Then
     
            Cells(i, 2).Interior.Color = RGB(255, 128, 0): Cells(i + 1, 2).Interior.Color = RGB(0, 160, 0)
     
        Else
     
     
            If Cells(i + 2, 2).Value = Cells(i + 1, 2).Value Then
                Cells(i + 2, 2).Interior.Color = RGB(0, 160, 0): Cells(i + 1, 2).Interior.Color = RGB(0, 160, 0)
     
     
            End If
     
        End If
    Next
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Essayez ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Sub MACRO1()
        Dim nbLignes As Long
        Dim i As Integer
        Sheets("Historique de production NEOP4").Columns(2).Insert
        nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
        Range("$B$2:B" & nbLignes).Formula = "=RIGHT(C2, 6)"
        For i = 2 To 200
            If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
                Cells(i, 2).Interior.Color = Cells(i - 1, 2).Interior.Color
            ElseIf Cells(i, 2).Value <> Cells(i - 1, 2).Value Then
                If Cells(i - 1, 2).Interior.Color = RGB(255, 128, 0) Then
                    Cells(i, 2).Interior.Color = RGB(0, 160, 0)
                Else
                    Cells(i, 2).Interior.Color = RGB(255, 128, 0)
                End If
            End If
        Next
    End Sub
    Cdlt

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2021
    Messages : 2
    Par défaut
    C'est parfait ca marche très bien, je me suis emmêler les pinceaux aces les i, i+1 et i-1
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/01/2018, 17h51
  2. [XL-2007] Macro pour recherche aléatoire avec des conditions
    Par bitissa1991 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 06/06/2016, 16h39
  3. Réponses: 2
    Dernier message: 17/03/2011, 21h45
  4. [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 17h01
  5. [VBA-E] Suppression des colonnes avec condition
    Par desdenova dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2007, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo