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 :

[VBA-E] ListBox Valeur dejà ajouté?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 17
    Par défaut [VBA-E] ListBox Valeur dejà ajouté?
    Bonjours,

    Le titre n'es peu être pas très parlant mais je actuellement entrain de développer une petite interface de séléction est j'aimerai savoir si il existe une commande toute faite pour vérifier si une valeur à dejà été ajouté dans une ListBox, mon code actuel est assez lourd et ce présente comme 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub Groupe()
     
    Set Acc = ThisWorkbook.Sheets("Acceuil")
    Set BdD = ThisWorkbook.Sheets("BdD")
     
    Dim i As Integer
    Dim j As Integer
    Dim GRP(100000) As Variant
     
    Acc.LstGrp.Clear
     
    ThisWorkbook.Sheets("BdD").Select
     
    i = 3
     
    Do Until IsEmpty(Cells(i, 1)) = True
     
        i = i + 1
     
    Loop
     
    iNblignes = i - 1
     
    For i = 3 To iNblignes
     
        For j = 1 To iNblignes
     
            If BdD.Cells(i, 5) = GRP(j) Then GoTo Sortie
     
        Next j
     
        Acc.LstGrp.AddItem BdD.Cells(i, 5)
        GRP(i - 2) = BdD.Cells(i, 5)
     
    Sortie:
     
    Next i
     
    Acc.Select
     
    End Sub
    J'utilise donc une itération ibriqué dans une autre pour vérifié si j'ai dejà ajouté la valeur. Ceci semble marcher pour un tableau assez petit mais j'arrive à 10303 lignes de donnée et je recontre beaucoup de problème que puis je utiliser comme fonction? Ou sinon mon code serait il mauvais?

    Merci d'avance.

    * Si je n'utilise pas la méthode Row.Count pour detecter la dernière ligne c'est juste une préférence personnelle.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir


    Tu peux essayer cette adaptation (si j'ai bien compris)


    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
    Sub Groupe()
        Dim BdD As Worksheet
        Dim i As Integer
        Dim Unique As New Collection
        Dim Valeur As Range
     
        Set BdD = ThisWorkbook.Worksheets("BdD")
     
        ThisWorkbook.Worksheets("Accueil").LstGrp.Clear
        i = 3
     
        On Error Resume Next
        Do Until IsEmpty(BdD.Cells(i, 1)) = True
                'Stocke les données dans une collection
                '(La collection n'accepte que des données uniques et permet donc
                ' de filtrer facilement les doublons).
            Unique.Add BdD.Cells(i, 5), CStr(BdD.Cells(i, 5))
            i = i + 1
        Loop
        On Error GoTo 0
     
        'Boucle sur le contenu de la collection pour alimenter la ListBox
        For Each Valeur In Unique
            ThisWorkbook.Worksheets("Accueil").LstGrp.AddItem Valeur
        Next Valeur
    End Sub


    bone soirée
    michel

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 17
    Par défaut
    Merci,

    Le code est vraiment bien.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/04/2014, 14h54
  2. [VBA-E]Affecter valeurs noms de fichier d'un répertoire
    Par zzman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2006, 00h28
  3. [VBA-E] ListBox et Codes postaux
    Par forsay1 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 13/03/2006, 10h07
  4. [VBA][Access]: Listbox se référant à une autre BD
    Par Alexj51 dans le forum Access
    Réponses: 4
    Dernier message: 07/02/2006, 15h36
  5. [VBA-E]Récupérer valeur cellule
    Par wanou44 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 06/02/2006, 12h52

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