IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compte de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 29
    Par défaut Compte de cellules
    Bonjour à tous,
    Je suis en train de me mettre au VBA je galère un peu : il faut dire que l'aide n'est pas très fournie .....
    Je souhaite créer une fonction qui compte le nb de cellule dans une zone définie (rentrée en paramètre) ayant une couleur de fond definie (rentrée en paramètre) et une valeur définie (rentrée en paramètre)

    Je n'ai rien inventé : pomper sur internet et modifier mais dès que je modifie ça ne fonctionne plus.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function NbPrevPerso(Zne As Range, Couleur As String, Ini As String)
    Application.Volatile True
    For Each cell In Zne
    If (cell.Interior.ColorIndex = Couleur and Cell.Value = Ini) Then NbPrevPerso = NbPrevPerso + 1
    Next
    NbPrevPerso = NbPrevPerso
    End Function
    La valeur de cell recherchée est des initiales donc toujours en chaîne de caractères.

    Quand j'utilise cette fonction sous Excel, j'ai un retour marqué #VALEUR.
    'ai essayé l'aide mais ça ne me fait rien.
    J'ai essayé de caster le Cell.Value en string (au cas où) mais il me met un erreur ...

    J'ai besoin de cette fonction pour des indicateurs donc je suis assez pressé, mais avide d'informations donc si vous pouvez m'aider et m'expliquer mon erreur : je suis preneur !

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonsoir,

    Pour bien commencer, voir ce support de cours complet VBA de Jean-Marc RABILLOUD.

    Pour la fonction, il faut spécifier un type de retour fonction(...) as <type de retour>.

    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function NbPrevPerso(Zne As Range, CouleurIndex As Long, Ini As String) As Long
        Application.Volatile True
        NbPrevPerso = 0
        Dim cell As Range
        For Each cell In Zne
            If (cell.Interior.ColorIndex = CouleurIndex And cell.Value = Ini) Then
                NbPrevPerso = NbPrevPerso + 1
            End If
        Next
    End Function
    A noter que la couleur est repéré par un index ColorIndex (un indice dans une palette de couleur).
    Ce n'est pas une chaîne de caractère.

    PS : Lorsque tu poste du code, sélectionne la partie code, et clique sur le bouton pour qu'il soit mis en forme comme du code.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 29
    Par défaut
    Bonsoir et merci pour cette aide : malheureusement, j'ai toujours le même problème.
    Est-ce que je dois rédiger de manière spécifique la variable "Ini" ? parce que le reste fonctionnait très bien ...

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    j'ai toujours le même problème.
    Tu peux copier/coller une formule d'unde des cellules qui retourne une erreur stp ?

    Est-ce que je dois rédiger de manière spécifique la variable "Ini"
    Si tu passe une référence de cellule, il n'y a rien de particulier.
    Si tu tape directement un texte à trouver, il faut le mettre entre ".

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 29
    Par défaut
    C'est bien ce que je pensais : pour moi les string se mettaient entre cotes (') et non guillemets.

    Maintenant ça fonctionne : merci beaucoup !!!

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Content que ça fonctionne avec des "
    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2013, 13h00
  2. [XL-2007] Macro qui compare/compte les cellules
    Par borisp dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/11/2011, 10h42
  3. Réponses: 2
    Dernier message: 16/07/2009, 17h39
  4. Réponses: 1
    Dernier message: 22/12/2008, 17h15
  5. Compte des cellules par couleur
    Par Tiresia dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 12/06/2007, 00h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo