NBVAL_si_couleur

Bonjour

Il y a quelque temps, j'avais posté pour savoir comment totaliser le contenu de cellules d'en fonction de leur couleur.

Je souhaiterais aujourd'hui compter le nombre de cellules non vides en fonction de leur couleur.

Comme je ne sais pas décrypter le code de la "somme_si_couleur" ci-dessous, quelqu'un pourrait-il m'indiquer comment l'aménager pour nbval_si_couleur ?

Merci.

Cordialement

Function SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant

'*********************************************************

' Effectuer la somme des cellules en couleur *

'*********************************************************

Dim Cel As Range

Dim Som As Double

' Ne pas oublier l'option de recalcul automatique

Application.Volatile

'

If PlageCouleur.Cells.Count > 1 Then

SOMME_SI_COULEUR = CVErr(xlErrValue)

Exit Function

End If

For Each Cel In PlageSomme

If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + Cel

Next

SOMME_SI_COULEUR = Som

End Function

Bonjour,

une proposition, tout comme la fonction somme_si_couleur, ne fonctionne pas avec les MFC.

Function NBVAL_SI_COULEUR(PlageNBVAL As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la NBVAL des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double
' Ne pas oublier l'option de recalcul automatique
Application.Volatile
'
If PlageCouleur.Cells.Count > 1 Then
NBVAL_SI_COULEUR = CVErr(xlErrValue)
Exit Function
End If
For Each Cel In PlageNBVAL
If Cel<>"" Then
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + 1
end if
Next
NBVAL_SI_COULEUR = Som
End Function

Bonjour,

Si je comprends ta demande ... tu veux simplement ajouter une condition :

que le compteur de ta fonction ne fonctionne que si la cellule contient quelque chose ....

Function SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la somme des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double
' Ne pas oublier l'option de recalcul automatique
Application.Volatile
'
If PlageCouleur.Cells.Count > 1 Then
   SOMME_SI_COULEUR = CVErr(xlErrValue)
   Exit Function
End If
For Each Cel In PlageSomme
   If Cel.value <>"" Then
      If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + Cel
   End If
Next Cel
SOMME_SI_COULEUR = Som
End Function
h2so4 a écrit :

Bonjour,

une proposition, tout comme la fonction somme_si_couleur, ne fonctionne pas avec les MFC.

Function NBVAL_SI_COULEUR(PlageNBVAL As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la NBVAL des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double
' Ne pas oublier l'option de recalcul automatique
Application.Volatile
'
If PlageCouleur.Cells.Count > 1 Then
NBVAL_SI_COULEUR = CVErr(xlErrValue)
Exit Function
End If
For Each Cel In PlageNBVAL
If Cel<>"" Then
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + 1
end if
Next
NBVAL_SI_COULEUR = Som
End Function

Bonjour h2so4

C'est tout à fait ça... merci !

Cordialement


James007 a écrit :

Bonjour,

Si je comprends ta demande ... tu veux simplement ajouter une condition :

que le compteur de ta fonction ne fonctionne que si la cellule contient quelque chose ....

Function SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la somme des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double
' Ne pas oublier l'option de recalcul automatique
Application.Volatile
'
If PlageCouleur.Cells.Count > 1 Then
   SOMME_SI_COULEUR = CVErr(xlErrValue)
   Exit Function
End If
For Each Cel In PlageSomme
   If Cel.value <>"" Then
      If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + Cel
   End If
Next Cel
SOMME_SI_COULEUR = Som
End Function

Bonjour James007

Mes cellules contiennent du texte et non des chiffres. Je souhaite compter le nombre de cellules non vides. J'ai appliqué le code de H2so4 qui fonctionne.

Merci néanmoins de ta réponse rapide !

Cordialement

Rechercher des sujets similaires à "nbval couleur"