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 :

Calcul d'occurrences uniques des valeurs dans une ou deux colonne avec nombre de lignes très importants


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut Calcul d'occurrences uniques des valeurs dans une ou deux colonne avec nombre de lignes très importants
    Bonjour,
    Je cherche à calculer le nombre d'occurrences uniques des valeurs dans une ou deux colonne avec nombre de lignes très importants.

    J'ai trouvé les formules:

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI('MEF NAT MAT'!$A$2:$A$73787<>"";1/NB.SI('MEF NAT MAT'!$A$2:$A$73787;'MEF NAT MAT'!$A$2:$A$73787)))

    Et:

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI('MEF NAT MAT'!$A$2:$A$73787<>"";1/NB.SI.ENS('MEF NAT MAT'!$A$2:$A$73787;'MEF NAT MAT'!$A$2:$A$73787;'MEF NAT MAT'!$D$2:$D$73787;'MEF NAT MAT'!$D$2:$D$73787)))

    Mais comme vous l'avez remarqué, elles portent sur 73787 lignes et cela rend le calcul, au moins, fastidieux et, en tout cas, inutilisable.

    Existe-t-il un moyen autre d'effectuer de tels calculs de façon utilisable.


    MERCI BEAUCOUP

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Kestion, bonjour le forum,

    Par formule je ne sais pas faire... Une proposition VBA avec le code ci-dessous :

    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
    Sub Macro1()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim D As Object 'déclare la variable D (Dictionnaire)
    Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
    Dim I As Long 'déclare la variable I (Incrément)
    Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
    Dim R As Range 'déclare la variable R (Recherche)
    Dim T As String 'déclare la variable T (Texte)
     
    Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter a ton cas)
    TV = O.Range("A1:A73787") 'définit le tableau des valeurs TV (à adapter à ton cas)
    Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
    For I = 2 To 73787 'boucle sur toutes les lignes du tableau des valeurs TV (en partant de la seconde)
        D(TV(I, 1)) = "" 'alimente le dictionnaire D
    Next I 'prochaine ligne de la boucle
    TMP = D.keys 'récupère dans le tableau temporaire TMP, la liste des éléments du dictionnaire D sans doublon
    For I = 0 To UBound(TMP) 'boucle sur tous les élément du tableau temporaire TMP
        If Application.WorksheetFunction.CountIf(O.Range("A1:A73787"), TMP(I)) = 1 Then 'condition : si l'élément est unique
            Set R = O.Columns(1).Find(TMP(I), , xlValues, xlWhole) 'définit la recherche R (recherche l'élément TMP(I) dans la colonne 1 (=A) de l'onglet O
            R.Interior.ColorIndex = 3 'colore en rouge l'intérieur de l'ocuurence trouvée
            T = IIf(T = "", R.Address, T & Chr(10) & R.Address) 'définit le texte T
        End If 'fin de la condition
    Next I 'prochain élément de la boucle
    MsgBox T 'affiche le texte T
    End Sub

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Merci mais je dois mal me débrouiller, la msgbox est vide.

    Je chercher bien un nombre, le nombre de couples (An;Bn) uniques dans ces deux colonnes

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Je me suis mal exprimé, j'ai, dans ma colonne A:A un certain nombre de valeurs qui se répètent, je voudrais connaître le nombre de valeur mais sans compter les répétitions.

    Idem, en B:B.

    Je voudrais aussi connaître le nombre de valeurs (An;Bn) sans compter les répétitions.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Je crois comprendre que ton code isole les valeurs qui seraient uniques dans une colonne comprenant des valeurs répétées et des valeurs uniques?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Peut-être que je peux récupérer le ???

    Si ça fonctionne, je te demanderais comment faire sur 2 colonnes

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

Discussions similaires

  1. Récupérer des valeurs dans une unique variable VBA
    Par LaMite dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/04/2014, 12h06
  2. Réponses: 9
    Dernier message: 15/03/2013, 16h18
  3. Réponses: 13
    Dernier message: 01/02/2006, 12h00
  4. Attribuer des valeurs dans une ListBox
    Par OjBarbare dans le forum MFC
    Réponses: 5
    Dernier message: 06/12/2005, 11h28
  5. fonction récupérant des valeurs dans une fonction popup...
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2005, 14h51

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