En vba, comment colorier cellules suivant valeur...

tarvel

XLDnaute Occasionnel
Bonjour,
En macro vba j'aimerais colorier (même couleur) une suite de 20 chiffres contenus sur une ligne de B5 à U5. La couleur pourrait être aléatoire!
Ensuite cette couleur devrait être affectée sur les même valeurs compris sur 3 lignes de 10 chiffres de B7 à K9.
Exemple j'ai de B5 à U5 en vert
2 4 8 10 14 20 25 31 32 45 47 49 50 53 57 60 64 65 68 69
Les 3 lignes suivantes (B7 à K9) en coloriant les valeurs que l'on retrouve en B5 à U5
1 3 5 8 18 25 30 33 45 61
2 4 9 13 23 32 40 45 57 66
4 10 12 18 23 31 36 46 54 68

Merci pour votre aide!
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : En vba, comment colorier cellules suivant valeur...

Bonsoir tarvel,

Un essai si j'ai bien compris:
VB:
Sub couleur()
Dim xCell As Range
Range("B5:U5").Interior.Color = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
For Each xCell In Range("B7:K9")
If Application.WorksheetFunction.CountIf(Range("B5:U5"), xCell) > 0 Then _
  xCell.Interior.Color = Range("B5").Interior.Color
Next xCell
End Sub
 

Pièces jointes

  • Colorier Cellule v1.xlsm
    19 KB · Affichages: 257

JCGL

XLDnaute Barbatruc
Re : En vba, comment colorier cellules suivant valeur...

Bonjour à tous,

Peux-tu essayer avec :

VB:
Option Explicit
Sub Colorie()
    Dim Cel As Range
    Dim Coul As Byte
    Coul = 40
    
    Range("B5:U5").Interior.ColorIndex = Coul
    For Each Cel In Range("B7:K20")
        If Application.CountIf(Range("B5:U5"), Cel) > 0 Then Cel.Interior.ColorIndex = Coul
    Next Cel
End Sub

A + à tous

Edition : Oups !!! Code quasi identique à celui de MaPomme...
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : En vba, comment colorier cellules suivant valeur...

Bonsoir tarvel,

Houps! j'ai oublié une ligne.
VB:
Sub couleur()
Dim xCell As Range
Range("B5:U5").Interior.Color = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
Range("B7:K9").Interior.Color = xlNone
For Each xCell In Range("B7:K9")
If Application.WorksheetFunction.CountIf(Range("B5:U5"), xCell) > 0 Then _
  xCell.Interior.Color = Range("B5").Interior.Color
Next xCell
End Sub
 

Pièces jointes

  • Colorier Cellule v2.xlsm
    19.2 KB · Affichages: 241

tarvel

XLDnaute Occasionnel
Re : En vba, comment colorier cellules suivant valeur...

Juste un petit souci par rapport au random de la couleur
Range("B5:U5").Interior.Color = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
A chaque fois que je lance la 1ère fois la macro j'ai toujours la même couleur qui apparait :
Range("B5:U5").Interior.Color = 9734581
Est-il possible au 1er lancement de la macro...que la couleur soit réellement aléatoire!

En vous remerciant!
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : En vba, comment colorier cellules suivant valeur...

Bonjour Tarvel,

Essayez ceci:
VB:
Sub couleur()
Dim xCell As Range
Randomize
Range("B5:U5").Interior.Color = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
Range("B7:K9").Interior.Color = xlNone
For Each xCell In Range("B7:K9")
If Application.WorksheetFunction.CountIf(Range("B5:U5"), xCell) > 0 Then _
  xCell.Interior.Color = Range("B5").Interior.Color
Next xCell
End Sub
 

Discussions similaires

Réponses
2
Affichages
525

Statistiques des forums

Discussions
312 345
Messages
2 087 456
Membres
103 546
dernier inscrit
mohamed tano