Compter le nombre de cellules colorées dans une colonne

Private Sub CommandButton1_Click() 

Dim colonneC As Range 
Set colonneC = Zcolon(c) 
Dim cell As Range 
Dim cpt As Integer 

        Sheets("Feuil1").Select 

    For Each cell In colonneC 

        If cell.Interior.ColorIndex = 3 Or cell.Interior.ColorIndex = 2 Then 

            cpt = cpt + 1 

            MsgBox "Il y a " & cpt & " cellules non trouvées, référez-vous aux cases colorées" 

        Else 

            MsgBox " Toutes les cellules ont été trouvés." 

        End If 

    Next 

    MsgBox "Procédure teminée." 

    cpt = 0 

End Sub

Function Zcolon() 

    Set Zcolon = Feuil1.Range(Feuil1.Cells(2, 3), Feuil1.Cells(1000, 3)) 

End Function 

Bonjour,
j'ai réalisé ce code, qui a pour but de compter le nombre de cellules colorées dans la colonne C de la ligne 2 à la ligne 1000, or le cpt ne s'incrémente que de 1 si toutes les cellules de 2 à 1000 sont colorées. Il doit me manquer une commande pour que ça fonctionne mais je ne trouve rien qui puisse m'aider, merci d'avance aux personnes qui m'aideront.

Bonjour,

Ta fonction Zcolon() n'a pas besoin d'argument.

L'écriture Set colonneC = Zcolon(c) est donc erronée.

Cela à pour effet de renvoyer le Range "C1" au lieu de "C2:C1000" comme souhaité.

Utilise donc :

Private Sub CommandButton1_Click() 

Dim colonneC As Range 
Set colonneC = Zcolon

Merci pour ta réponse, qu'appelles-tu argument ? (J'ai repris ça d'un cours de VBA que j'ai eu je t'avoue ne pas m'être trop posé de questions sur l'écriture de la fonction) .

Argument = paramètre passé à une fonction.

Exemple d'une fonction à 2 arguments (paramètres) :

Function fSomme(Nb1 As Double, Nb2 As Double) As Double
'ici, la fonction attend 2 arguments : Nb1 et Nb2
    fSomme = Nb1 + Nb2
End Function

Merci j'ai trouvé avant de voir votre réponse effectivement une erreur de frappe de ma part

Rechercher des sujets similaires à "compter nombre colorees colonne"