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 :

Compter les entrées unique d'une colonne.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Compter les entrées unique d'une colonne.
    J'aurais une question... J'ai une colonne contenant le nom des employés. Cette colonne peut inclure plusieurs fois le nom du même employé.
    Je doit pouvoir sortir le nombre total d'employés (unique) ayant été inscrit dans cette colonne.

    Existe-t'il une formule me permettant de réaliser ceci ou dois-je coder?

    Si je doit coder, serais-t'il possible de me lancer dans la bonne direction? J'trouves pas de formule rapide, et mon "deadline" est rapide sur ce probleme...

    Merci!

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Il existe sans doute une formule mais vu que je ne suis pas un bon formulateur...formuliste...formulationniste...enfin je ne maîtrise pas bien les formules, en attendant je te propose une solution en VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Dim Col As New Collection, i As Integer
     
    'noms des employés en colonne A
    'de la ligne 2 à la dernière ligne
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        On Error Resume Next
        Col.Add Cells(i, 1), CStr(Cells(i, 1))
    Next
     
    MsgBox "Le nombre d'employés est : " & Col.Count
     
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par fring Voir le message
    pas un bon formulateur...formuliste...formulationniste...enfin je ne maîtrise pas bien les formules
    Héhéhé, bien formulé (pour ne pas faire de jeu de mots platte)


    Merci pour le code, j'imaginais justement quelquechose du même genre. Je teste ca et t'en redonnes des nouvelles!

    Habs!


    Pour ceux qui ont une formule en tête, gênez vous surtout pas pour nous...


    Après Test... #1, Merci!

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Trouvé dans un coin du net
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(1/NB.SI(A2:A50;A2:A50))
    plage de cellules à adapter et ne fonctionne que s'il n'y a pas de cellules vides
    .

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Ouais, mais si les données sont du texte (ie: nom d'employés), ca donnes #DIV/0! comme réponse...

    Dommages que je soit obligé de coder, j'aurais aimé avoir un fichier sans code... (Excel 2007 fait une distinction entre les fichiers avec ou sans macro)

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Avant de te proposer la formule, j'avais fait le test avec du texte et ça fonctionne.

    Tu n'as pas des cellules vides dans ta liste ?

  7. #7
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour à tous

    je connaissais pas celle la lol et en la lisans, elle doit fonctionner

    en voici une autre matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =somme(1/nb.si((A2:A50;A2:A50))
    mais j'avoue, c'est la meme

    la seule facon que tu aies une Division / 0, c'est que tu n'as pas mis les memes plages, et que dans la deuxieme, il y ait une valeur que ne se trouve pas dans la premiere
    1/0

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par wilfried_42 Voir le message
    la seule facon que tu aies une Division / 0, c'est que tu n'as pas mis les memes plages, et que dans la deuxieme, il y ait une valeur que ne se trouve pas dans la premiere
    Ouais, ou si on a des champs vide dans notre plage... En fait ca marches super si on a pas de champs vide... la poisse! Comme puis-je modifier cette formule afin de ne pas tenir compte des champs vide? Je vais continuer de chercher de mon côté...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2008
    Messages : 357
    Points : 417
    Points
    417
    Par défaut
    Bonjour,

    Je t'en ai bricolé une

    celle-ci bug avec les cellules vides
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((NB.SI(A50:A66;A50:A66)>0)/(NB.SI(A50:A66;A50:A66)))
    celle-là fonctionne avec les cellules vides
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((NB.SI(A50:A66;A50:A66)>0)/(NB.SI(A50:A66;A50:A66)+1E-99))

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Je pense que si tu fais un tableau croisé dynamique tu n'auras les entrées qu'une seule fois. Mais bon... faut pouvoir l'exploiter ensuite.

  11. #11
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par fring Voir le message
    ne fonctionne que s'il n'y a pas de cellules vides
    Citation Envoyé par fring Voir le message
    Tu n'as pas des cellules vides dans ta liste ?
    Citation Envoyé par HabsWarrior Voir le message
    Ouais, ou si on a des champs vide dans notre plage... En fait ca marches super si on a pas de champs vide... la poisse!
    Tu n'avais pas lu les réponses avant ?

    La formule ci-dessous accepte les cellules vides, formule matricielle à valider par --> Shift+Ctrl+Enter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(A2:A50<>"";1/NB.SI(A2:A50;A2:A50)))

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par fring Voir le message
    Tu n'avais pas lu les réponses avant ?
    Heuh, je dirais que non... Hihihihihi!

    Citation Envoyé par fring Voir le message
    La formule ci-dessous accepte les cellules vides, formule matricielle à valider par --> Shift+Ctrl+Enter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(A2:A50<>"";1/NB.SI(A2:A50;A2:A50)))
    Merci mec, ca fonctionne pile-poil!

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

Discussions similaires

  1. [AC-2010] Compter les valeurs uniques d'une colonne
    Par GasGasGas dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/06/2014, 23h02
  2. Compter les cellules identiques d'une colonne
    Par daridoussama dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/03/2013, 16h36
  3. Compter les cellules identiques d'une colonne
    Par daridoussama dans le forum Excel
    Réponses: 2
    Dernier message: 29/03/2013, 16h11
  4. [Toutes versions] Déterminer les valeurs unique d'une colonne
    Par l.a.bdx dans le forum Excel
    Réponses: 10
    Dernier message: 31/01/2010, 07h16
  5. comment compter les entrées identiques dans une requete?
    Par Chico_Latino dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 18h16

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