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 :

listbox multicolonne sans doublon [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut listbox multicolonne sans doublon
    hello
    je souhaite recuperer dans la listbox de mon userform, deux colonnes sans doublon
    Grace aux tutoriels, j'ai reussi a gerer la partie sans doublon et a afficher un colonne.
    • On fait comment pour afficher la deuxieme colonne?
    • j'aimerai bien aussi pourvoir organiser la colonne valeur du plus petit au plus grand


    Merci du temps que vous aller me consacrer


    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
    '2/initialize dealer zone
        Dim cell As Range
        Dim unique As New Collection
        Dim valeur As Range
     
     
     
     i = Sheets("Citroen_Dealers_target").Range("A65536").End(xlUp).Row
     On Error Resume Next
     For Each cell In Range("A1:A" & i)
     unique.Add cell, CStr(cell)
     Next cell
     On Error GoTo 0
     
     For Each valeur In unique
     Me.ListBox1.AddItem valeur
     Me.ListBox1.List(0, 1) = valeur.Offset(0, 1).value
     
    Next valeur

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    il faut changé la propriété ColumnCount

    pour trier
    http://excel.developpez.com/faq/inde...iAlphaComboBox

  3. #3
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut
    ah tiens je l'avais pas vu celui la

    en ce qui concerne ma seconde colonne en prenant en compte ta judicieuse remarque sur le .colounmscount
    j'ai maintenant, que la premiere ligne qui affiche les deux colonnes

    je suppose que je dois faire une boucle?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    essaie comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each valeur In unique
        Me.ListBox1.AddItem valeur
        Me.ListBox1.List(k, 1) = valeur.Offset(0, 1).Value
        k = k + 1
    Next valeur

  5. #5
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut
    question stupide mais je veux etre sur de bien comprendre
    K correspond a quoi dans ton code ?
    je le definit comme un integer et lui attribue quel valeur?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    k est un integer donc Dim k as integer
    pas besoin de lui attribuer une valeur au départ mais on peut lui attribué une valeur de 0 (pour la première ligne)

    ceci ajoute la première colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ListBox1.AddItem valeur

    ceci ajoute la 2e colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Me.ListBox1.List(k, 1) = valeur.Offset(0, 1).Value
        k = k + 1
    k commence à 0 pour la première ligne
    si on veux qu'il passe à la suivante il faut l'incrémenter alors k = k +1

    en espérant de vous avoir éclairé

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    de tout façon même les exemples de Gain sont faux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     For Each valeur In unique Me.ListBox1.AddItem valeur
     Me.ListBox1.List(0, 1) = valeur.Offset(0, 1).value
     
    Next valeur
    quand on arrive a la dernier valeur de l'unique le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     valeur.Offset(0, 1).value
    va forcement engendrer une erreur
    puisque par définition en fin de boucle valeur est le dernier

    et je ne suis pas sur que ca corresponde a ta demande initiale


    si tu nous disais plutôt ce que tu cherche a faire en Français
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut
    Cela va pas
    Apres test, k bloquent comple;emt la listbox qui m'affiche que la ligne d'entet
    J'ai pense que k etant une variable, il faut lui attribuer une reference
    mais j'ai maintenant une errreur 381, propriete invalide

    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
        Dim cell As Range
        Dim unique As New Collection
        Dim valeur As Range
        Dim k As Integer
     
      Me.ListBox1.ColumnCount = 2
     
     i = Sheets("Citroen_Dealers_target").Range("A65536").End(xlUp).Row
     On Error Resume Next
     For Each cell In Range("A3:A" & i)
     unique.Add cell, CStr(cell)
     Next cell
     On Error GoTo 0
     
     For Each valeur In unique
     k = valeur.Row
     Me.ListBox1.AddItem valeur
        Me.ListBox1.List(k, 1) = valeur.Offset(k, 1).value
        k = k + 1
    patricktoulon
    je souhaite simplement avoir une listbox a deux colonnes sans doublon de ligne
    je suppose que dans ce cas, il faut imbriaue une autre boucle mais je maitrise absolument pas le procede collection/dictionnaire

  9. #9
    Membre éclairé 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
    Points : 758
    Points
    758
    Par défaut


    Bonjour,

    Quelle est la source de tes listes ?

    K est une variable, en effet, comme beaucoup de chose en programmation, mais lui attribuer une référence ? Pourquoi faire ? De quelle référence parles tu ? K est simplement une variable d'itération, dans le cas de gnain, pas besoin de lui affecter quelque chose de concret.

    (Et je pense qu'avant de parler de dictionnaire, il vaut mieux en effet maîtriser les boucles !)
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  10. #10
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut
    Nico,
    K est une variable, en effet, comme beaucoup de chose en programmation, mais lui attribuer une référence ? Pourquoi faire ? De quelle référence parles tu ? K est simplement une variable d'itération, dans le cas de gnain, pas besoin de lui affecter quelque chose de concret.
    desole, quand son code n'a pas fonctionne, je me suis rabattu sur le probleme que je rencontre frequement a savoir le referencement d'une variable car list demande un numero de ligne en lieu et place de k

    Quelle est la source de tes listes ?
    colonne A et B d'une feuille

    (Et je pense qu'avant de parler de dictionnaire, il vaut mieux en effet maîtriser les boucles !)
    Je me passe de ce genre de commentaire. Je fais des efforts pour comprendre a chaque fois les codes et references que chacun me communique aimablement. et oui propriete "New collection" je ne maitrise pas et cela me pertube mais j'y travaille

  11. #11
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    Bonjour
    de tout façon même les exemples de Gain sont faux
    va forcement engendrer une erreur
    Chez moi cela fonctionne très bien

    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
        Dim cell As Range
        Dim unique As New Collection
        Dim valeur As Range
        Dim k as integer
        k = 0
     
     i = Sheets("Citroen_Dealers_target").Range("A65536").End(xlUp).Row
     On Error Resume Next
     For Each cell In Range("A1:A" & i)
     unique.Add cell, CStr(cell)
     Next cell
     On Error GoTo 0
     
     For Each valeur In unique
        Me.ListBox1.AddItem valeur
        Me.ListBox1.List(k, 1) = valeur.Offset(0, 1).Value
        k = k + 1
    Next valeur
    dans la liste il apparaît la colonne A et la colonne B

  12. #12
    Membre éclairé 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
    Points : 758
    Points
    758
    Par défaut


    Ce n'était pas une attaque personnelle, mais une simple constatation, inutile de prendre la mouche.
    Et Collection n'est pas une propriété, mais un objet (instancié à l'aide de New, ce que je ne trouve pas très propre, au passage : l'auto-instanciation est dangereuse et trop implicite).

    gnain et patricktoulon t'ont fourni de bon éléments de réponse, bon courage pour la suite.
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bon si j'ai bien compris tu veux avoir ta liste qui se trouve en colonne "A de ton sheets dans ta listbox sur 2 colonnes et sans doublons
    c'est bien ca
    si c'est le cas on va faire court
    dans cet exemple on prend la colonne [A] a partir de A1 jusqu'à la dernière ligne rempli de la colonne
    et on la fou dans la listbox sur 2 colonnes et sans doublons

    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
    Private Sub UserForm_Activate()
        Dim tablobase, tablosortie, dicoSdoublons, i, a, e
        Set dicoSdoublons = CreateObject("Scripting.Dictionary")
        With ActiveSheet
            tablobase = .Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
            ReDim tablosortie(UBound(tablobase), 2)
            For i = 1 To (UBound(tablobase) - 1) / 2
                If Not dicoSdoublons.exists(tablobase(i, 1)) Then
                    dicoSdoublons(tablobase(i, 1)) = ""
                    e = e + 1
                    tablosortie(e, 1) = tablobase(i, 1)
                End If
                If Not dicoSdoublons.exists(tablobase((i * 2), 1)) Then
                    dicoSdoublons(tablobase((i * 2) , 1)) = ""
                    tablosortie(e, 2) = tablobase((i * 2), 1)
                End If
            Next i
        End With
        With Me.ListBox1
            .ColumnCount = 2
            .ColumnWidths = "80;80"
            .List = tablosortie
        End With
    End Sub
    truc bidule machin chose et voila c'est réglé
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations professionnelles :
    Activité : salarié

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

    J'aimerais comprendre ce qu'est un Doublon de ligne ?
    • Deux ou plusieurs lignes dont toutes les colonnes sont absolument identiques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    toto / tata
    toto / tata
    • Deux ou plusieurs lignes ayant un ou des doublons dans la même colonne / Laquelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    toto / titi
    toto / tata
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tata / toto
    titi / toto
    • Deux ou plusieurs lignes ayant un ou des doublons dans des colonnes différentes...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    toto / tata
    tata / titi
    Le code va être différent selon le cas... l'Utilisation d'un dictionnaire (Dictionary) et d'un tableau de type Variant devrait l'accélérer...
    À plus,

    Thauthème

    Je suis Charlie

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Allez me voila de retour avec une version nikel et plus aboutie
    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
    Option Base 1
    Private Sub UserForm_Activate()
        Dim tablobase, tablosortie, dicoSdoublons, i, e, nB, nB2
        Set dicoSdoublons = CreateObject("Scripting.Dictionary")
        With ActiveSheet
            tablobase = .Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
             For i = 1 To (UBound(tablobase))
                If Not dicoSdoublons.exists(tablobase(i, 1)) Then
                    e = e + 1
                    dicoSdoublons(tablobase(i, 1)) = e
                End If
            Next i
           ReDim tablosortie(e, 2)
           col = 1: nB = 1
               For Each elem In dicoSdoublons
                  If nB >= e / 2 + 1 Then
                    col = 2: nB2 = nB2 + 1
                 End If
                it = IIf(nB2 > 0, nB2, nB)
                 tablosortie(it, col) = elem
                       nB = nB + 1
            Next
        End With
        With Me.ListBox1: .ColumnCount = 2: .ColumnWidths = "80;80": .List = tablosortie: End With
    End Sub
    si tu ne comprends pas je commenterais le code
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut
    Hello Patrick,

    Desole, j'ai pas voulu repondre sans avoir mon fichier sous les yeux

    Je me suis mal exprimee, J'ai deux colonne A et B que je souhaite retrouver dans une listbox comportant ces 2 colonnes
    Je regarde ton code, car meme si il est fond2 sur une erreur de comprehension (pardon du temps pris), il semble se rapprocher de ce que je souhaite

    Hello Thautheme dans mon cas, c'est un vrai doublon deux ou 3 lignes parfaitement identiques

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour
    'accords c'est beaucoup plus simple que je pensais
    en fait tu veux tes 2 colonnes dans la liste box sur 2 colonne et sans doublons

    dans ce cas la tu utilise 2 dico un pour A un pour B

    tu fait le A et pour le B tu teste si il existe dans le A
    et tu transfert sur listbox

    tu t'était vraiment mal exprimé aon aurait gagné du temps autrement
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut
    humblement pardon
    je teste cela tout de suite

    edit: meme si je vais les trouve, un conseil sur des tuto d'utilisation des dico?

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    tiens voila un exemple qui te tri les deux colonne t'enleve les doublons sur les deux colonnes

    un item ne peut pas se retrouver sur les deux colonnes
    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
    Private Sub UserForm_Activate()
        Dim dicoA, dicoB, i, e, a, tabloA, tabloB, tablo2col
        'on créé les deux dictionnaires
        Set dicoA = CreateObject("Scripting.Dictionary")
        Set dicoB = CreateObject("Scripting.Dictionary")
        With Sheets(1)
     
        'on met les 2 colonne séparément dans une variable tableau en memoire
            tabloA = .Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
            tabloB = .Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row)
            'on dimention le tablo de destination sur 2 colonne et le nombre de lignes utilisés dans le sheets
     ReDim tablo2col(.UsedRange.Rows.Count, 2)
            'on rempli la colonne 1 du tablo de destination en memoire en testant l'existence de l'item dans le dicoA
            For i = 1 To UBound(tabloA)
                If dicoA.exists(tabloA(i, 1)) = False Then
                    dicoA(tabloA(i, 1)) = tabloA(i, 1)
                    e = e + 1
                    tablo2col(e, 1) = tabloA(i, 1)
                End If
            Next i
     
            'on rempli la colonne 2 du tablo de destination en memoire en testant l'existence de l'item dans le dicoA et le dicoB
            'de la colonne 1 et la colonne2
            For i = 1 To UBound(tabloB)
                If dicoB.exists(tabloB(i, 1)) = False And dicoA.exists(tabloB(i, 1)) = False Then
                    dicoB(tabloB(i, 1)) = tabloB(i, 1)
                    a = a + 1
                    tablo2col(a, 2) = tabloB(i, 1)
                End If
            Next i
        End With
        With ListBox1: .ColumnWidths = "50;50": .List = tablo2col: .ColumnCount = 2: End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Membre du Club
    Femme Profil pro
    controleur de gestion
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : controleur de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 60
    Points
    60
    Par défaut
    Tentative avortee

    après avoir decode ton code (merci pour les explications)

    c'est bien sans doublon mais je ne retrouve pas ma seconde colonne dans la listbox
    Il n' y a pas non plus de classement
    j'ai essayer sur deux fichiers differents, c'est le meme probleme

    bon j'y retourbe

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

Discussions similaires

  1. [XL-2007] Remplir une liste multicolonne sans doublon
    Par LeForestier dans le forum Contribuez
    Réponses: 0
    Dernier message: 15/08/2009, 10h40
  2. listbox sans doublons
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2009, 22h14
  3. Réponses: 0
    Dernier message: 15/01/2009, 12h00
  4. listbox sans doublons
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 22/10/2008, 18h13
  5. ListBox sans Doublons
    Par pobrouwers dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/02/2007, 17h41

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