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 :

Function compter valeur [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Par défaut Function compter valeur
    bonjour a tous
    Je souhaite utilise une fonction afin simplement de compter le nombre de valeur identique de la colonne A commençant par ligne 3
    Fonction que je pourrai réutiliser
    Dans la colonne j’ai que des valeurs comme ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    vals = Array("1", "2", "3", "4", "5", "6", "7","8", "9", "10", "11", "12", "13", "14""15", "16", "17", "18", "19", "20")
     
    If (lcell.text = vals) then 
    lcompteur= lcompteur +1
     
    tablresultatligne = 3
     
    tablresultatcolum= Array("j", "k", "l", "m", "n", "o", "p","q", “r", "s", "t", "u", "v", "w""x", "y", "z", "aa", "ab", "ac")
    si une fonction c'est compliqué rien de grave

    pour moi ce n'est pas simple

    je vous remercie cordialement

  2. #2
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Bonjour,

    Dans ta colonne A, tu souhaite obtenir le nombre de fois qu'il y a "toto" dans ta cellule, ou le nombre de valeurs présente au moins en double ? Exemple :

    toto
    mama
    toto
    mama
    toto
    wiwi

    Tu souhaite connaître 3, le nombre de fois que tu vois "toto", ou 2, le nombre de valeurs qui sont au moins en double (toto et mama ?)

  3. #3
    Membre très actif Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Par défaut
    bonjour
    je souhaite simplement avoir le nombre de fois que tu vois "toto", mais aussi le nombre de fois que tu vois"mama" et "wiwi"et le reste dans un tableau déjà cité ligne 3 colonne j,k....
    en vous remerciant

  4. #4
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Dans mon exemple, ça donne :

    toto toto 3
    mama mama 2
    toto wiwi 1
    mama
    toto
    wiwi

    Si c'est bien ça, tu peux le faire avec des formules Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =NB.SI(A:A;"toto")
    =NB.SI(A:A;"mama")
    =NB.SI(A:A;"wiwi")

  5. #5
    Membre très actif Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Par défaut
    bonjour dans l'exemple que tu donne le résultat serai pour toto= 3 ,mama= 2,wiwi 1 sachant pour pour ce que je veux faire je ne travaille que sur la colonne A commençant par ligne 3
    je ne souhaite utiliser aucune formule et c'est la que cela ce complique dans le principe oui"NBSI" pourrai convenir ,mais ce n'est pas le but ,j'ai trop trop de formule .
    merci

  6. #6
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Normalement, c'est l'inverse qui est préconisé (dans le sens ou on préféreras utiliser des formules Excel plutôt que du VBA) , mais admettons
    Dans ce cas, il te faut juste un compteur de valeur. Si on optimise un peu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function ComptageIdentique (plage as range, valeur as string)
    Dim TempArray
    Dim result as single
    Dim I as single
     
    TempArray = plage
     
    result = 0
    For I = LBound(TempArray, 1) To UBound(TempArray, 1)
        If TempArray(I, 1) = valeur Then result = result + 1
    Next I
    ComptageIdentique = result
    End function
    Voici une fonction qui va compter les valeurs identiques. Tu lui passe une plage de valeur, et une valeur, et ça renvoie le nombre d’occurrence de ta valeur dans la plage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sub test
    Dim NbToto as single
    NbToto = ComptageIdentique(Worksheets("TaFeuille").range("A:A"), "toto")
    msgbox NbToto
    End sub
    NB : la fonction n'est pas à insérer dans le sub, tu dois la mettre en dehors, et même dans un autre module, pour plus de clarté !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Requête - Compter valeurs à double pour même identifiant
    Par skippy86 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/10/2012, 17h30
  2. Compter valeurs à partir de la requete
    Par sabefa dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2012, 15h18
  3. Formule compter valeurs d'une colonne sans doublons
    Par spark_legion dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/05/2011, 14h12
  4. Compter valeur négative colonne read.table
    Par wylenia dans le forum R
    Réponses: 3
    Dernier message: 08/12/2010, 15h21
  5. [XL-2003] Compter valeurs d'une colonne en fonction d'une autre colonne
    Par greggy dans le forum Excel
    Réponses: 2
    Dernier message: 03/11/2009, 12h51

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