Compte couleur fond + trame

Nekoty

XLDnaute Junior
Bonjour au forum,

J'ai besoin de compter les couleurs de fond avec en plus la trame (les petits points ou les rayures).

Donc sur le site de Boisgontier j'ai utilisé la macro qui fonctionne à merveille, mais elle ne reconnait pas la trame.

Function CompteCouleurFond2(champ As Range, couleurfond As Range)
Application.Volatile
Dim c, temp
temp = 0
cf = couleurfond.Interior.Color
For Each c In champ
If c.Interior.Color = cf Then
temp = temp + 1
End If
Next c
CompteCouleurFond2 = temp
End Function

Je ne peux malheureusement pas changer les couleurs de fond qui sont utilisées par plusieurs services.

Merci pour votre aide
 
G

Guest

Guest
Re : Compte couleur fond + trame

Bonjour,

voici un exemple qui correspond à certains petits points.
A toi de trouver la bonne valeur pour remplacer xlGray16 dans la macro suivante.

Pour cela tu sélectionnes une cellule qui contient la trame de fond que tu souhaites compter et dans l'éditeur de macro (VBE) tu fais CTRL+G
et dans la fenêtre execution tu tapes:

?ActiveCell.Interior.Pattern

Avec le point d'interrogation et tu valides.

Code:
Function CompteCouleurFond2(champ As Range, couleurfond As Range)
Application.Volatile
Dim c, temp
temp = 0
cf = couleurfond.Interior.Color
For Each c In champ
If c.Interior.Color = cf   And [COLOR=red]c.Interior.Pattern = xlGray16[/COLOR] Then
temp = temp + 1
End If
Next c
CompteCouleurFond2 = temp
End Function

A+
 

Nekoty

XLDnaute Junior
Re : Compte couleur fond + trame

Bonjour Hasco,

Voilà, j'ai fais comme mentionné mais pas de résultat

Function CompteCouleurFond2(champ As Range, couleurfond As Range)
Application.Volatile
Dim c, temp
temp = 0
cf = couleurfond.Interior.Color
For Each c In champ
If c.Interior.Color = cf And c.Interior.Pattern = xlGray16 Then
temp = temp + 1
End If
Next c
CompteCouleurFond2 = temp
End Function

et ajout dans "execution" de ?ActiveCell.Interior.Pattern.

Je ne vois pas où ça peut bloqué.

Merci
 
G

Guest

Guest
Re : Compte couleur fond + trame

Hello,

bien, tu as su trouver.

Code:
?ActiveCell.Interior.Pattern.
Dans la fenêtre excécution permet uniquement de connaître la valeur de la propriété Interior.Pattern de la cellule active!:D

A+
 

Nekoty

XLDnaute Junior
Re : Compte couleur fond + trame

Re le forum, Hasco,

Voilà, Hasco m'a bien aidé hier, mais quand je change d'ordinateur et de version d'Excel, ça marche ou ça bug.

Sur Excel 2003, la différence n'est pas prise en compte, n'est considéré que la couleur de fond et la trame passe aux oubliettes.

voici le VBA
Function CompteCouleurFond2(champ As Range, couleurfond As Range)
Application.Volatile
Dim c, temp
temp = 0
cf = couleurfond.Interior.Color
For Each c In champ
If c.Interior.Color = cf And c.Interior.Pattern = xlGray8 Then
temp = temp + 1
End If
Next c
CompteCouleurFond2 = temp
End Function

Merci pour l'aide que vous m'apporté.
 
G

Guest

Guest
Re : Compte couleur fond + trame

Bonjour Nekoty, le forum,

Je n'ai pas xl 2003 mais 2002 et 2007 et sûr les deux ceci fonctionne:

Code:
Public Function CompteCouleurFond2(champ As Range, couleurfond As Range)
    Application.Volatile
    Dim c, temp, cf, tr
    temp = 0
    cf = couleurfond.Interior.Color
   [COLOR=red] tr = couleurfond.Interior.Pattern
[/COLOR]    For Each c In champ
        If c.Interior.Color = cf And c.Interior.Pattern = [B][COLOR=red]tr [/COLOR][/B]Then
            temp = temp + 1
        End If
    Next c
    CompteCouleurFond2 = temp
End Function

A+
 

Discussions similaires

Réponses
4
Affichages
535

Statistiques des forums

Discussions
312 452
Messages
2 088 544
Membres
103 880
dernier inscrit
rafaelredsc