Addition suivant couleur de police

micky -  
m@rina Messages postés 27523 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je voudrai addition le nombre de cellules de couleurs de polices différentes
exemple : j'ai plusieurs cellules écrites en vert, ou bleu, ou rouge,
je voudrai savoir combien de cellules sont vertes, bleues ou rouges
merci pour votre aide
Michèle

5 réponses

  1. UsulArrakis Messages postés 7683 Statut Contributeur 3 196
     
    salut
    dans quel logiciel ? et quelle version ?
    0
  2. UsulArrakis Messages postés 7683 Statut Contributeur 3 196
     
    c'est possible avec une macro il me semble mais ça dépasse mes compétences
    attend qu'un spécialiste passe par là ou va sur le forum https://www.excel-downloads.com/
    il y a plein d'accros des macros ;-)
    0
  3. micky
     
    Ok
    Merci tout de même d'avoir essayé
    à +
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. m@rina Messages postés 27523 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Y en a aussi qui savent ici !!! :D

    Il faut écrire une fonction et l'utiliser ensuite comme une fonction ordinaire avec les arguments indiqués dans la fonction.

    Voici une function que j'ai écrite il y a quelque temps, qui est plus compliquée car elle permet de compter les cellules en couleur, les cellules tramées selon le type de trame, et selon le type de couleur de la trame.

    Bien entendu c'est à compléter selon tes propres couleurs. Tu peux supprimer tout ce qui concerne la trame si cela ne t'intéresse pas :

    Function nbtrame(plage As Range, couleur As Variant, trame As Variant, tramecol As Variant) As Double
    Application.Volatile True
    
    Dim cellule As Range, nb As Long
    
    Application.Volatile True
    nb = 0
    For Each cellule In plage
        If couleur = "rouge" Then couleur = 3
        If couleur = "vert" Then couleur = 4
        If couleur = "orange" Then couleur = 46
        If couleur = "gris" Then couleur = 15
        If couleur = 0 Then couleur = -4105
        If trame = "d" Then trame = -4162
        If trame = "u" Then trame = -4121
        If trame = 0 Then trame = 1
        If tramecol = 0 Then tramecol = -4105
        If tramecol = "rouge" Then tramecol = 9
        If tramecol = "vert" Then tramecol = 4
        If tramecol = "orange" Then tramecol = 46
        If tramecol = "gris" Then tramecol = 15
    
    If cellule.Interior.Pattern = trame Then
    
        If cellule.Interior.PatternColorIndex = tramecol Then
            If cellule.Interior.ColorIndex = couleur Then
        nb = nb + 1
    
    End If
    End If
    End If
    Next cellule
    nbtrame = nb
    End Function
    --

    Une fois que tu as écrit cette fonction, tu peux l'insérer via le bouton Fonction, Fonctions personnalisées. Il te restera à remplir la plage pour le premier argument, la couleur pour le second, la trame pour le troisième et la couleur de la trame pour le dernier. Pour compter sans trame et/ou sans couleur de trame, on met 0. Par exemple pour compter les cellules rouges dans la plage A1:A10, ça fait :

    =nbtrame(A1:A10;"rouge";0;0)

    A titre indicatif, pour la trame, "d" et "u" signifie down et up pour le sens de la trame.

    m@rina
    - "Sur le forum bureautique, on pose des questions concernant la bureautique..."
    - "Ah bon ???"
    0
    1. UsulArrakis Messages postés 7683 Statut Contributeur 3 196
       
      coucou m@rina
      j'savais pas que tu macrotais sous excel ;-)

      merci pour cette macro, je prends aussi
      0
    2. micky
       
      merci beaucoup
      c'est super !
      0
    3. m@rina Messages postés 27523 Date d'inscription   Statut Modérateur Dernière intervention   11 562
       
      Hello Usul d'Arrakis !
      Ben oui, je macrote d'ailleurs surtout sur Excel... comme mon site ne l'indique pas !! :D

      micky : une précision => Pour ce type de fonction personnalisée, il te faudra mettre à jour avec F9 en cas de modifs pour être sûr du résultat.
      0