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

  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é !

  7. #7
    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
    merci déjà pour ce travail mais comment je fais svp pour renvoyer toutes ces valeurs

    dans le tableau résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tablresultatcolum= Array("j", "k", "l", "m", "n", "o", "p","q", “r", "s", "t", "u", "v", "w""x", "y", "z", "aa", "ab", "ac")
    je rappelle que je compte tous les chiffres"1", "2" ...et jusqu’à "20" qui correspond au nombre de colonne
    qu'es que cela donnerai avec mon exemple ? SVP

  8. #8
    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


    Pour tout dire, je n'ai absolument pas compris cet exemple. A quoi correspond la première variable, "tableauresultatligne", et à quoi correspond le second tableau ?
    Au passage, petite faute dans la déclaration du tableau, au niveau de "r", ce n'est pas le bon symbole de quotation (la coloration syntaxique aide à y voir plus claire)

    Dans mon exemple, j'utilise une fonction qui me permet de compter le nombre de "toto" dans la colonne A, que faut il faire de plus ?

  9. #9
    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
    l'exemple que tu m'a donnée fonctionne pour une donnée es qui fonctionne pour plusieurs données moi j'ai plein de donnée "1","2"... jusqu’à 20
    et après c'est me semble t'il intéressant c'est d'avoir dans un tableau résultat peu importe la variable ou les variables ou pas de variable du tout
    tous ces compteurs de résultats mais j'essaye d'expliquer au mieux, par ces variables
    j'ai plein de colonnes à faire avec le même principe donc très intéressants en matière de résultat
    pour l'instant j'avance avec ce que tu me propose, mais cela ne répond pas à tous les résultats
    exemple :si tu compte tous les "1" et tous "2"... et que tu me renvoie les résultats en colonne j 3, k 3 ...
    voila le problème de départ
    mais il y a peut être pas grand chose à modifier
    en te remerciant cordialement

  10. #10
    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


    Citation Envoyé par pilounnet54
    mais il y a peut être pas grand chose à modifier
    Peut être même rien ?
    Je t'ai donnée une fonction qui est réutilisable à volonté, ce qui répond à ta première demande :
    Citation Envoyé par pilounnet54
    Fonction que je pourrai réutiliser
    Il faut adapter le code qui appelle la fonction ! D'ou ma demande sur tes besoins. J'ai fait une fonction simple et générique de tel sorte que tu puisse la réutiliser dans n'importe quel autre programme.

    Si tu cherche plusieurs valeurs, tu appelle plusieurs fois la fonction !

    Au risque de me répéter :
    Citation Envoyé par moi
    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é !
    Un exemple qui va compter les valeurs "toto" et "tata" et les mettre dans un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim MonArray(1) as variant
     
    MonArray(0) = ComptageIdentique(Worksheets("TaFeuille").range("A:A"), "toto")
    MonArray(1) = ComptageIdentique(Worksheets("TaFeuille").range("A:A"), "tata")
    J'ai rempli un tableau avec deux valeurs : le nombre d'occurrence de "toto" dans la colonne A, et le nombre d'occurrence de "tata" dans la colonne A. Au vu des explications peu claire que j'ai, je peux difficilement faire mieux. Ou alors pas réutilisable, mais dans ce cas, il faut savoir ce que l'on veut.

  11. #11
    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
    dans cet état esprit es que l'on peu simplifier au maximum stp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    NbToto1 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "1")
    NbToto2 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "2")
    NbToto3 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "3")
    NbToto4 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "4")
    NbToto5 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "5")
    NbToto6 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "6")
    NbToto7 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "7")
    NbToto8 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "8")
    NbToto9 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "9")
    NbToto10 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "10")
    NbToto11 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "11")
    NbToto12 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "12")
    NbToto13 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "13")
    NbToto14 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "14")
    NbToto15 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "15")
    NbToto16 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "16")
    NbToto17 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "17")
    NbToto18 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "18")
    NbToto19 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "19")
    NbToto20 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "20")
     
    Dim MonArray(1) As Variant
     
    MonArray(0) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "1")
    MonArray(1) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "2")
    MonArray(2) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "3")
    MonArray(3) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "4")
    MonArray(4) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "5")
    MonArray(5) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "6")
    MonArray(6) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "7")
    MonArray(7) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "8")
    MonArray(8) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "9")
    MonArray(9) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "10")
    MonArray(10) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "11")
    MonArray(11) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "12")
    MonArray(12) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "13")
    MonArray(13) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "14")
    MonArray(14) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "15")
    MonArray(15) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "16")
    MonArray(12) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "17")
    MonArray(13) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "18")
    MonArray(14) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "19")
    MonArray(15) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "20")
     
    Worksheets("Feuil2").Cells(3, 10) = MonArray(0)
    Worksheets("Feuil2").Cells(3, 11) = MonArray(1)
    Worksheets("Feuil2").Cells(3, 12) = MonArray(2)
    Worksheets("Feuil2").Cells(3, 13) = MonArray(3)
    Worksheets("Feuil2").Cells(3, 14) = MonArray(4)
    Worksheets("Feuil2").Cells(3, 15) = MonArray(5)
    Worksheets("Feuil2").Cells(3, 16) = MonArray(6)
    Worksheets("Feuil2").Cells(3, 17) = MonArray(7)
    Worksheets("Feuil2").Cells(3, 18) = MonArray(8)
    Worksheets("Feuil2").Cells(3, 19) = MonArray(9)
    Worksheets("Feuil2").Cells(3, 20) = MonArray(10)
    Worksheets("Feuil2").Cells(3, 21) = MonArray(11)
    Worksheets("Feuil2").Cells(3, 22) = MonArray(12)
    Worksheets("Feuil2").Cells(3, 23) = MonArray(13)
    Worksheets("Feuil2").Cells(3, 24) = MonArray(14)
    Worksheets("Feuil2").Cells(3, 25) = MonArray(15)
    Worksheets("Feuil2").Cells(3, 26) = MonArray(16)
    Worksheets("Feuil2").Cells(3, 28) = MonArray(17)
    Worksheets("Feuil2").Cells(3, 29) = MonArray(18)
    merci

  12. #12
    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


    Alors ya un truc plutôt utile en programmation, que l'on appelle "Boucles" !

    Alors si on regarde ta procédure, ya un paquet de chose qui ne serve à rien. Tu calcul des NbToto (alors rien n'interdit de changer le nom de la variable) que tu n'utilise pas dans la suite de ta procédure.

    Si j'ai Dim MonArray(1), c'est parceque j'ai 2 valeurs à mettre dans mon tableau, donc deux indices : 0 et 1

    Ensuite, pour simplifier, POURQUOI passes tu par un tableau ? A ce stade de programmation, il ne sert à rien, a part écrire des lignes de code pour la beauté du geste. Non, réellement, si les valeurs que tu recherche sont dans un tableau, parcours le ... Je veux bien croire que la programmation c'est difficile, mais ça fait tout de même bientôt 400 post que tu est là ...

    ...

    ...

    ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With Worksheets("Feuil2")
        For I = 1 to 20
            .Cells(3, 9 + I) = ComptageIdentique(.Range("A:A"), I)
        Next I
    End With
    Permet moi également de douter de la pertinence de ce que tu veux faire ? Avoir une vision d'ensemble pour résoudre un problème me semble assez primordial, et la, on a que des fragments de problème avec des posts à droite à gauche sur des petits problèmes. On est tout de même là pour s'entraider, donc avec un peu de recul, on pourrait peut être te conseiller des méthodes plus pratiques pour ton problème en particulier ?

  13. #13
    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 t’empêcherai pas de douter ou me prendre pour un fou! j'ai l'habitude
    l'informatique ce n'est alors vraiment pas mon métier ,je bricole, aussi ,avec ce que l'on me donne ,et cela me passe aussi le temps" retraite" mais ne te trompe pas à l'arriver cela peux être un programme d'enfer
    je ne peu pour l'instant données un vision ensemble, même si pour l'instant cela pourrai intéresse plein de monde
    dur de me comprendre, je le sais pardon pour l'incompréhension que je donne mais je ne le fais pas exprès.
    es que tu as regarde tous ce que j'ai mis dans la dernière réponse ? je pense que l'on peu encore avec ce que j'ai mis simplifier regarde jusqu’au bout stp
    cordialement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Dim NbToto1 As Single
    Dim NbToto2 As Single
    Dim NbToto3 As Single
    Dim NbToto4 As Single
    Dim NbToto5 As Single
    Dim NbToto6 As Single
    Dim NbToto7 As Single
    Dim NbToto8 As Single
    Dim NbToto9 As Single
    Dim NbToto10 As Single
    Dim NbToto11 As Single
    Dim NbToto12 As Single
    Dim NbToto13 As Single
    Dim NbToto14 As Single
    Dim NbToto15 As Single
    Dim NbToto16 As Single
    Dim NbToto17 As Single
    Dim NbToto18 As Single
    Dim NbToto19 As Single
    Dim NbToto20 As Single
    NbToto1 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "1")
    NbToto2 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "2")
    NbToto3 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "3")
    NbToto4 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "4")
    NbToto5 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "5")
    NbToto6 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "6")
    NbToto7 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "7")
    NbToto8 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "8")
    NbToto9 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "9")
    NbToto10 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "10")
    NbToto11 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "11")
    NbToto12 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "12")
    NbToto13 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "13")
    NbToto14 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "14")
    NbToto15 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "15")
    NbToto16 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "16")
    NbToto17 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "17")
    NbToto18 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "18")
    NbToto19 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "19")
    NbToto20 = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "20")
    Dim MonArray(20) As Variant
    MonArray(0) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "1")
    MonArray(1) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "2")
    MonArray(2) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "3")
    MonArray(3) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "4")
    MonArray(4) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "5")
    MonArray(5) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "6")
    MonArray(6) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "7")
    MonArray(7) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "8")
    MonArray(8) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "9")
    MonArray(9) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "10")
    MonArray(10) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "11")
    MonArray(11) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "12")
    MonArray(12) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "13")
    MonArray(13) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "14")
    MonArray(14) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "15")
    MonArray(15) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "16")
    MonArray(12) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "17")
    MonArray(13) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "18")
    MonArray(14) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "19")
    MonArray(15) = ComptageIdentique(Worksheets("Feuil2").Range("A:A"), "20")
    Worksheets("Feuil2").Cells(3, 10) = MonArray(0)
    Worksheets("Feuil2").Cells(3, 11) = MonArray(1)
    Worksheets("Feuil2").Cells(3, 12) = MonArray(2)
    Worksheets("Feuil2").Cells(3, 13) = MonArray(3)
    Worksheets("Feuil2").Cells(3, 14) = MonArray(4)
    Worksheets("Feuil2").Cells(3, 15) = MonArray(5)
    Worksheets("Feuil2").Cells(3, 16) = MonArray(6)
    Worksheets("Feuil2").Cells(3, 17) = MonArray(7)
    Worksheets("Feuil2").Cells(3, 18) = MonArray(8)
    Worksheets("Feuil2").Cells(3, 19) = MonArray(9)
    Worksheets("Feuil2").Cells(3, 20) = MonArray(10)
    Worksheets("Feuil2").Cells(3, 21) = MonArray(11)
    Worksheets("Feuil2").Cells(3, 22) = MonArray(12)
    Worksheets("Feuil2").Cells(3, 23) = MonArray(13)
    Worksheets("Feuil2").Cells(3, 24) = MonArray(14)
    Worksheets("Feuil2").Cells(3, 25) = MonArray(15)
    Worksheets("Feuil2").Cells(3, 26) = MonArray(16)
    Worksheets("Feuil2").Cells(3, 28) = MonArray(17)
    Worksheets("Feuil2").Cells(3, 29) = MonArray(18)
    Worksheets("Feuil2").Cells(3, 30) = MonArray(19)
    Dans son ensemble cela donnerai quoi si tu simplifie tout ceci
    En tous les cas je te remercie pour tout
    cordialement

  14. #14
    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


    Le code que j'ai posté est exactement une simplification de ce que tu as écris.

  15. #15
    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
    donc stp l'ensemble du code donne ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub test1()
    Dim MonArray(20) As Variant
     
    Dim I As Integer
     
    Dim NbToto1 As Single
    Dim NbToto2 As Single
    Dim NbToto3 As Single
    Dim NbToto4 As Single
    Dim NbToto5 As Single
    Dim NbToto6 As Single
    Dim NbToto7 As Single
    Dim NbToto8 As Single
    Dim NbToto9 As Single
    Dim NbToto10 As Single
    Dim NbToto11 As Single
    Dim NbToto12 As Single
    Dim NbToto13 As Single
    Dim NbToto14 As Single
    Dim NbToto15 As Single
    Dim NbToto16 As Single
    Dim NbToto17 As Single
    Dim NbToto18 As Single
    Dim NbToto19 As Single
    Dim NbToto20 As Single
     
     
    NbToto1 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "1")
    NbToto2 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "2")
    NbToto3 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "3")
    NbToto4 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "4")
    NbToto5 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "5")
    NbToto6 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "6")
    NbToto7 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "7")
    NbToto8 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "8")
    NbToto9 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "9")
    NbToto10 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "10")
    NbToto11 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "11")
    NbToto12 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "12")
    NbToto13 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "13")
    NbToto14 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "14")
    NbToto15 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "15")
    NbToto16 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "16")
    NbToto17 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "17")
    NbToto18 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "18")
    NbToto19 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "19")
    NbToto20 = ComptageIdentique(Worksheets("Feuil3").Range("A:A"), "20")
     
     
     
     
    With Worksheets("Feuil3")
        For I = 1 To 20
            .Cells(3, 9 + I) = ComptageIdentique(.Range("A:A"), I)
        Next I
    End With
     
     
    End Sub
    cordiament

  16. #16
    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


    Pas du tout. Comme je l'ai dit un peu avant :
    Citation Envoyé par moi
    Le code que j'ai posté est EXACTEMENT une simplification de ce que tu as écris.

  17. #17
    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
    message d'erreur : type d'argument byref incompatible et cela pointe sur le I après le A:A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Worksheets("Feuil3")
        For I = 1 To 20
            .Cells(3, 9 + I) = ComptageIdentique(.Range("A:A"), I)
        Next I
    End With
     
     
    End Sub
    j'ai déclarer le I
    dim I as integer

    peut tu m'aider

  18. #18
    Membre expérimenté
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Par défaut
    -> Essaye ça peut-être ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(3, 9 + I) = ComptageIdentique(.Range("A:A"), cstr(I))
    Bonne continuation

  19. #19
    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
    OK avec ce code cela fonctionne
    c'est a mon sens un tout peu long dans le résultât ,mais cela fonctionne très très bien merci
    bonne soirée

  20. #20
    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


    Bonsoir,

    Un petit message pour m'excuser pour les messages un peu austère, j'étais dans les transports, pas facile de tout expliquer quand on est coincé dans le f***** RER C !

    Bonne continuation !

    PS : Et merci à OBO29, en effet, le paramètre est défini en tant que "string", et je lui passe un single, fatigue, quand tu nous tiens

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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