Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion news
  • 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 !

news

XLDnaute Impliqué
Bonjour à tous du forum,

ne sachant pas les conditions ou prodécures d'y mettre
pour compter le nombre de cells ayant un format de couleur de fond différent,
ci-joint exemple,

merci pour d'éventuelles astuces,
 

Pièces jointes

Re : count format

re: somme de couleur de fond,

est-ce une macro semblable à celle-ci de Staple1600 trouvé sur un lien posté sur ce forum,

https://www.excel-downloads.com/threads/compter-les-cellules-de-la-meme-couleur.78302/

Sub test()
Application.ScreenUpdating = False
Dim P As Range
Dim C As Range
Set P = Sheets("Feuil1").Range("A1:A100") 'ici pour le test
compteur = 0
For Each C In P
'compter selon format condtitionnel
'If C.FormatConditions(1).Interior.ColorIndex = 0 Then
'pour compter selon couleur police
'If C.Font.ColorIndex = 3 Then
'pour compter selon la couleur de la celulle
'If C.Interior.ColorIndex=3 then
compteur = compteur + 1
End If
Next C
MsgBox compteur & " cellule(s) trouvées"
End Sub

restant à changer par
if C.FormatConditions(1).Interior.ColorIndex <> 0 Then ...
 
Dernière édition:
Re : count format

Bonsoir,

Voir PJ

Code:
Function CompteCouleur(champ As Range, couleurFond)
    Application.Volatile
    Dim c, temp
    temp = 0
    For Each c In champ
      If c.Interior.ColorIndex = couleurFond Then
         temp = temp + 1
      End If
    Next c
    CompteCouleur = temp
End Function


Function CompteCouleurFondTexte(champ As Range)
   Application.Volatile
   couleurFond = Range(Application.Caller.Address).Interior.ColorIndex
   couleurTexte = Range(Application.Caller.Address).Font.ColorIndex
   Dim c, temp
   temp = 0
   For Each c In champ
     If c.Interior.ColorIndex = couleurFond And c.Font.ColorIndex = couleurTexte Then
       temp = temp + 1
     End If
   Next c
   CompteCouleurFondTexte = temp
End Function

JB
Formation Excel VBA JB
 

Pièces jointes

Re : count format

re: merci à tous de vos réponses,

j'ai repris les différents formules et fonctions, fait différents tests,
mais cela ne fonctionne pas encore que calcule bien le total d'une plage de données de différents couleurs de fonds,

voir fichier ci-joint,

dans les exemples de Boisgontier, le total est fait sur la base d'une couleur de fond précise,
mais besoin que le total est indiqué pour n'importe quel couleur de fond,

et j'avance un peu pour résoudre,
je prends la formule ci-dessous, laquelle fonctionne bien repris d'un autre fil posté sur ce forum,

Function nb_inter(plage As Range) As Long
Dim cel As Range, nb As Long
Application.Volatile
nb = 0
For Each cel In plage
If cel.Interior.ColorIndex <> xlNone Then nb = nb + 1
Next
nb_inter = nb
End Function


manque encore ou pour améliorer,
comment est fait automatiquement un update du total dans Range ("A12","C12","E12","I12")
si par excemple une couleur de fond est ajouté dans une plage de données,
qu'est affiché dans Range ("A12","C12","E12","I12") automatiquement le nouveau total,

sans besoin de se positionner de nouveau dans Range ("A12","C12","E12","I12") est effectuez le recalcul,
 

Pièces jointes

Dernière édition:
Re : count format

Bonjour News, le fil, le forum

ton fichier modifié, si j'ai bien compris, ajout d'une macro événementielle dans la feuille, recalcul le classeur à chaque nouvelle selection, à noter que tu peux spécifier une plage pour ce re-calcul si tu as beaucoup de formule dans le classeur concerné.

bonne journée
@+
 

Pièces jointes

Re : count format

Bonjour à tosu du forum,

merci pour réponse Pierrot93,
ta fonction résoud et calcule bien le total de différents couleurs de fond d'une plage de données,

j'ai mis le code ci-dessous afin d'avoir automatiquement le recalcul de la forumule s'il y a des ajoutes de couleur de fond dans une plage de données ( code repris de Boisgontier qui a des données et exemples très explicites )

Dim celluleAvant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not IsEmpty(celluleAvant) Then
If Not Intersect(Range(celluleAvant), [A1:I55]) Is Nothing Then Calculate
End If
celluleAvant = Target.Address
End Sub


bonne journée encore,
 
Dernière édition:
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…