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 le nombre de valeurs différente dans une colonne [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2012
    Messages : 24
    Points : 21
    Points
    21
    Par défaut Compter le nombre de valeurs différente dans une colonne
    Bonjour,

    J'utilise cette formule dans une feuille excel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUMPRODUCT(1/COUNTIF(A2:A18;A2:A18))
    Elle me sert à compter le nombre de valeurs différentes dans une colonne.
    Le problème, c'est que ma colonne est de longueur variable et je souhaite donc automatiser ceci avec une petite macro
    (puisque si je prend la colonne entière, il me dit qu'il ne peut pas diviser par 0 et donc bug).

    Voici ma tentative qui ne fonctionne pas.
    Qu'est ce que je dois modifier pour y remédier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Sub CompterNombrePalettes()
        Dim NBpal As Integer
        NBpal = Application.WorksheetFunction.CountA(Range("$A:$A"))
        Cells(1, 10) = Application.WorksheetFunction.SumProduct(1 / Application.WorksheetFunction.CountIf(Range("A2", Cells(2, 1).Offset(NBpal -2, 0)), Range("A2", Cells(2, 1).Offset(NBpal -2, 0))))
    End Sub
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    à coller ds un module et lancer, à modifier selon la colonne concernée !

    oups!

    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
    Sub CompTage()
     
     
     
    Dim i As Long
    Dim colNbr As New Collection
     
    i = 2 ' Ici on démarre en ligne 2
     
    Do While ThisWorkbook.Worksheets("Feuil1").Range("a" & i).Value <> ""
        On Error Resume Next
     
        colNbr.Add ThisWorkbook.Worksheets("Feuil1").Range("a" & i).Value, CStr(ThisWorkbook.Worksheets("Feuil1").Range("a" & i).Value)
     
         i = i + 1
    Loop
     
     MsgBox colNbr.Count
     
     
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2012
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Ok, super, ça marche nickel!

    Petite question avant que je ne cloture le sujet (histoire de progresser):
    Pourquoi est-ce que ma version ne fonctionnait-elle pas?

    Merci!

  4. #4
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    bonjour et avec cette formule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(1/NB.SI(DECALER(A2;0;0;NBVAL($A:$A)-1;1);DECALER(A2;0;0;NBVAL($A:$A)-1;1)))

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2012
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Formule à mettre directement dans la feuille excel donc, sans macro.
    Je vais trouver les équivalents anglais des formules pour voir

    Merci!
    Sans macro, c'est pas plus mal non plus!

    Et juste parce que j'aime bien comprendre ce que je fais, personne ne peut me dire quelles erreurs étaient présentes dans mon code original?

    Bon nickel, la formule sans macro fonctionne très bien

    Merci pour vos deux réponses:

    Avant de fermer (je me répète, je sais ^^ ), juste parce que j'aime bien comprendre ce que je fais, personne ne peut me dire quelles erreurs étaient présentes dans mon code original?

    Merci!

  6. #6
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Hello,


    en Vba
    fait maison

    ++
    Fichiers attachés Fichiers attachés

  7. #7
    Membre à l'essai
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2012
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Comme toujours c'est toujours un plaisir de venir sur ce forum pour chercher de l'aide!
    Tout fonctionne comme un charme, que je choisisse les variantes macro ou sans macro.
    Je marque en résolu

    Encore un grand merci à vous jijie, rvtoulon et Ashieron!

    A bientôt!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2012, 19h15
  2. compter le nombre de valeurs distinctes dans une colonne
    Par huître dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/06/2011, 19h31
  3. Réponses: 2
    Dernier message: 17/06/2010, 16h03
  4. [MySQL] Compter le nombre de valeurs identiques dans une colonne d'une table
    Par luca120 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2009, 00h40
  5. Nombre de valeurs différentes dans une colonne
    Par KrusK dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/08/2005, 14h18

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