Mise en forme conditionnnelle su n critères

cortadillo

XLDnaute Nouveau
j'ai fait un code VBA qui fonctionne partiellement, le problème c'est que les couleurs sont limités à 36 et 34. Je voudrais que le code génère automatiquement les code couleurs en fonction de l'index colonne K.

Deuxième problème c'est que les couleurs de fond ne couvrent pas mes colonnes renseignées.

Pour plus d'infos, ci -joint le fichier Excel.

Sub MFC()

Application.ScreenUpdating = False
couleur = 36
For i = 2 To [A65000].End(xlUp).Row
If Cells(i, 11) <> Cells(i - 1, 11) Then couleur = IIf(couleur = 36, 34, 36)
Cells(i, Selection.End(xlToRight)).Resize(4, Selection.End(xlToRight)).Interior.ColorIndex = couleur


Next i
Application.ScreenUpdating = True

End Sub

merci de votre aide.

Regarde la pièce jointe MFC_MOA_3-1.xls

Cordialement,
Cortadillo
 

Pièces jointes

  • MFC_MOA_3-1.xls
    128 KB · Affichages: 38
  • MFC_MOA_3-1.xls
    128 KB · Affichages: 41

JCGL

XLDnaute Barbatruc
Re : Mise en forme conditionnnelle su n critères

Bonjour à tous,

Pourquoi utilises tu xlToRight sur des lignes ?

Un essai simplifié sur la colonne 11 :

VB:
Sub MFC()
  'Application.ScreenUpdating = False
  couleur = 36
  For i = 2 To [A65000].End(xlUp).Row
     If Cells(i, 11) <> Cells(i - 1, 11) Then couleur = IIf(couleur = 36, 34, 36)
     Cells(i, 11).Interior.ColorIndex = couleur
  Next i
  Application.ScreenUpdating = True
End Sub

A + à tous
 

Bebere

XLDnaute Barbatruc
Re : Mise en forme conditionnnelle su n critères

bonjour Cordadillo
ajout bonjour JCGL
avec find bien plus rapide
Code:
Sub ColorPlage()

    Application.ScreenUpdating = False
    couleur = 36
    
    Set mondico = CreateObject("Scripting.Dictionary")
    For Each Cel In Range("K2:K" & Range("K65536").End(xlUp).Row)
        If Not mondico.Exists(Cel.Value) Then mondico.Add Cel.Value, Cel.Value
    Next

    For Each Item In mondico.items
        Set c = Columns("K").Find(Item, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            ld = c.Row: lf = ld - 1
            Do
                lf = lf + 1
                Set c = Columns("K").FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If

        Range(Cells(ld, 1), Cells(lf, 11)).Interior.ColorIndex = couleur

        couleur = IIf(couleur = 36, 34, 36)
        lf = 0
    Next
    Application.ScreenUpdating = True

End Sub
 
Dernière édition:

cortadillo

XLDnaute Nouveau
Re : Mise en forme conditionnnelle su n critères

Bonjour,

Merci de vos contributions, je parviens à présent à mettre en place une mise en forme conditionnelle.

Mais comment fait-on si l'on souhaite plus de 3 couleurs. J'aimerai que le programme affecte d'autres couleurs:

Exemple : pour l'index 1, une couleur orange.
Pour l'index 2, une couleur jaune
pour l'index 3, une autre couleur
et ainsi de suite: index n+1 => couleur n+1

Le but est de mettre en évidence les données de toute la donnée par couleur. Or dans le document Excel en pj je retrouve les même couleurs.

Est il possible que le système détermine lui même (ex: Random) les couleurs en fonction du numéro d'index.

Regarde la pièce jointe MFC_MOA_3-1.xls

Encore Merci

A+
Cortadillo
 

Pièces jointes

  • MFC_MOA_3-1.xls
    130 KB · Affichages: 32
  • MFC_MOA_3-1.xls
    130 KB · Affichages: 36

Discussions similaires

Réponses
2
Affichages
946

Statistiques des forums

Discussions
312 331
Messages
2 087 354
Membres
103 528
dernier inscrit
hplus