VBA-Moyenne excluant valeur nulle ou vide

Bonjour à tous,

Je viens vers vous car après quelques jours de réflexions je reste bloqué.

J'aimerai pouvoir sous VBA créer une fonction permettant d'effectuer une moyenne qui exclue les cellules ayant une valeur nulle ou "vide".

La moyenne doit également être effectué sur les cellules ayant une couleur intérieure défini.

J'arrive quasiment à tout faire sauf la partie concernant l'exclusion des cellules.

Je vous laisse découvrir le code que j'ai pu trouver et modifier en partie sur internet :

Function moyenneCouleur(plage As Range, couleur As Range) As Double
    Dim coul As Long, c As Range, nb As Long, total As Double
    coul = couleur.Interior.ColorIndex
    For Each c In plage
        If c.Interior.ColorIndex = coul Then
            nb = nb + 1
            total = total + c
        End If
    Next c
    moyenneCouleur = total / nb
End Function

La formule que j'utilise dans ma cellule suivante et la suivante :

moyenneCouleur(D6:AI6;AN3)

D6:AI6 (ligne concernée)

AN3 cellule contenant couleur concernée.

PS: la formule marcherait également si au lieu de mettre formule sur un ensemble de données je souhaiterai qu'elle s'applique à l'ensemble de la ligne :

moyenneCouleur(6:6;AN3) ?

Un grand merci pour toutes les idées me permettant d'arriver à mon but

Bonjour,

Tu peux ajouter ton test supplémentaire....

Function moyenneCouleur(plage As Range, couleur As Range) As Double
    Dim coul As Long, c As Range, nb As Long, total As Double
    coul = couleur.Interior.ColorIndex
    For Each c In plage
        If c <> "" And c <> 0 Then
          If c.Interior.ColorIndex = coul Then
              nb = nb + 1
              total = total + c
          End If
        End If
    Next c
    moyenneCouleur = total / nb
End Function

En espèrant que cela t'aide ...

Bonjour James007,

Un grand merci pour ton aide, cela fonctionne à merveille !

La Ganache

Ravi que cela te convienne ...

Merci ... pour tes remerciements ...

Rechercher des sujets similaires à "vba moyenne excluant valeur nulle vide"