XL 2016 Comparaison de couleur de cellules consécutives

  • Initiateur de la discussion Initiateur de la discussion steph59940
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

steph59940

XLDnaute Nouveau
Bonsoir les pros,
C'est la première fois pour moi sur un forum, veuillez excusez mon coté novice en demande d'aide comme en VBA. J'essai de créer une macro (un mix d'enregistrement macro et de choses trouvées à droite à gauche), il faut bien commencer quelque part.
Je bute, malgré mais longues recherches, sur le fais de pouvoir comparer la couleur de deux cellules consécutives dans la même colonne dans la plage que je sélectionne auparavant par un "Set Plage = Application.InputBox(prompt:="Sélectionner la colonne à traiter sur la feuille", Type:=8)". En général c'est la première colonne qui contient plein de chiffres. ici AC2 à AC633 au départ qui devient la colonne D ensuite (voir étapes du code).
Avec le fichier que je vous joint à la fin de mon code qui fonctionne, je souhaite comparer la couleur de la cellule D3 avec la D4 si toutes les deux sont rouges masquer ces deux lignes puis la D4 avec la D5 si toutes les deux rouges masquer ces deux lignes sinon passer à la comparaison suivante etc jusqu’à la fin de la plage sélectionnée auparavant par l'utilisateur.
Pouvez vous m'aider ?
Stéphane.
 

Pièces jointes

Solution
Bonsoir Stef, et bienvenu sur XLD,
En pièce jointe un essai.
La macro est simple :
VB:
Sub MasqueColonne()
    Application.ScreenUpdating = False
    DerLig = Application.WorksheetFunction.CountA(Range("A1:A10000"))
    For i = 2 To DerLig Step 3
        Application.StatusBar = "Ligne : " & i & " sur " & DerLig
        If Range("D" & i + 1).Interior.Color = RGB(255, 0, 0) And Range("D" & i + 2).Interior.Color = RGB(255, 0, 0) Then
            Range("D" & i + 1).EntireRow.Hidden = True
            Range("D" & i + 2).EntireRow.Hidden = True
        End If
    Next i
    Application.StatusBar = ""
End Sub

Sub DemasqueTout()
    Range("A1:A10000").EntireRow.Hidden = False
End Sub
J'ai rajouté la p'tite macro DémasqueTout. Pour les tests...
Bonsoir Stef, et bienvenu sur XLD,
En pièce jointe un essai.
La macro est simple :
VB:
Sub MasqueColonne()
    Application.ScreenUpdating = False
    DerLig = Application.WorksheetFunction.CountA(Range("A1:A10000"))
    For i = 2 To DerLig Step 3
        Application.StatusBar = "Ligne : " & i & " sur " & DerLig
        If Range("D" & i + 1).Interior.Color = RGB(255, 0, 0) And Range("D" & i + 2).Interior.Color = RGB(255, 0, 0) Then
            Range("D" & i + 1).EntireRow.Hidden = True
            Range("D" & i + 2).EntireRow.Hidden = True
        End If
    Next i
    Application.StatusBar = ""
End Sub

Sub DemasqueTout()
    Range("A1:A10000").EntireRow.Hidden = False
End Sub
J'ai rajouté la p'tite macro DémasqueTout. Pour les tests c'est bien utile de pouvoir revenir en arrière.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
2 K
Retour