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 distinctes dans une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut compter le nombre de valeurs distinctes dans une colonne
    Bonjour,

    j'ai un souci , j'ai une colonne et je voudrais savoir le nombres de valeur distinctes dans cette colonne

    quelle est l'instruction en vba pour dénombrer les valeurs ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Par défaut
    Tu as la fonction countif en vba équivalent à nb.si
    par exemple je cherche le nombe de valeur égale à 12 dans la colonne A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Valeur = Application.WorksheetFunction.CountIf(Columns("A:A"), 12)

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    Merci pour ton aide mais ce que je veux c'est compter le nombre de valeurs différentes

    je vais écrire l'algorithme en espérant être précis

    pour chaque cellule de la selection
    si cellule = agence alors
    selectionner la colonne
    si les cellules de cette colonnes sont toute identiques
    faire traitement
    sinon faire traitement
    fin si
    fin si
    fin pour


    Ce qui m'interesse c'est surtt ce qui est en rouge

    cordialement

    Huître

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    Bonjour

    nombre de valeur uniques dans une plage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function compter_uniques(plage As Range) As Long
     
    Set dico = CreateObject("scripting.dictionary")
    For Each cellule In plage
         ref = cellule.Value
         If Not dico.exists(ref) Then
              dico.Add ref, ref
         End If
    Next
    compter_uniques = dico.Count
    End Function
    on pourrait peut-^tre passer + simplement par un filtre ou par la fonction evaluate mais bon courage

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    alors je vais rajouter une difficulté

    c'est un fichier télécharger à partir du web et on peut choisir l'emplacement des colonnes (donc difficulté)

    moi ce que je compte faire ressemble à ça

    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
    Sub multiple()
    Dim rg As Excel.Range
    Dim val As Integer
    
    Range("B14").Select
    Range(Selection, Selection.End(xlToRight)).Select
    
    For Each rg In Selection
        If rg = "Agence" Then
           rg.Select
           Range(Selection, Selection.End(xlDown)).Select
               Range(Selection).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
            "BO14"), Unique:=True    
                val = Application.WorksheetFunction.CountA("BO") - 1
                If val > 1 Then
                Range("B3").ClearContents
                End If
        End If
    Next
    End Sub
    et je dois réiterer le processus pour le nom du client

    donc la je cherche la plage qui m'interesse en fontion du critère
    ensuite je fais un filtre élaboré avec une extraction sans doublons que je copie dans la cellule BO14 et la je compte le nombre de champs dans la colonne BO en excluant le titre et je l'insere dans la variable , si cette variable est superieur à 1 alors je supprime le champs concerné

    alors en plus d'etre fastidieux ,le code ne marche pas(le debogueur m'indique la ligne écrite en vert) mais voilà ce que je veux grossomodo c'est à dire supprimer une cellule en fonction du nombre de valeurs différentes qu'on peut trouver

    Sinon si je reviens au code de Michel_M je n'ai pas bien compris les instructions

    ah oui j'ai oublié un dernier détail plusieur colonnes peuvent avoir le même ce qui constitue une gêne non négligeable mais comment résoudre ce problème de doublons?

    Merci d'avance

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    Tu n'as pas autre chose à rajouter après une proposition que je reprenne les codes N fois ?

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

Discussions similaires

  1. [XL-2007] Compter le nombre de valeurs différente dans une colonne
    Par Mist-e-Fire dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/04/2013, 09h01
  2. Réponses: 1
    Dernier message: 22/05/2012, 19h15
  3. [2008R2] Compter le nombre de valeurs nulles dans une mesure
    Par kavuza dans le forum SSAS
    Réponses: 5
    Dernier message: 04/05/2012, 14h57
  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. Réponses: 0
    Dernier message: 27/05/2009, 14h21

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