XL 2016 Comparaison de couleur de cellules consécutives

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

  • Planification Moustiquaires Simplifié.xlsm
    390.8 KB · Affichages: 6
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...

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Planification Moustiquaires Simplifié (V2).xlsm
    404.4 KB · Affichages: 9

Discussions similaires

Réponses
3
Affichages
289

Statistiques des forums

Discussions
312 107
Messages
2 085 358
Membres
102 874
dernier inscrit
Petro2611