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 :

Erreur d'excéution 457, Listbox sans doublons [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2017
    Messages : 6
    Par défaut Erreur d'excéution 457, Listbox sans doublons
    Bonjour à tous,

    Je souhaiterai utiliser une collection pour obtenir une listbox sans doublons à la fin de mon programme. Sauf que je n'y arrive pas. Mon code est le suivant :


    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    Public Sub Alim_LB_Rech1_sans_doub()
     
     Dim J As Integer
     
     Dim Unique As New Collection
     
     Dim Valeur As Variant
     
     Dim tampon As Variant
     
     Dim Cle As Integer
     
     
     
     With Initialisation.LB_Rech1
     
       On Error Resume Next
     
     'Je stocke les valeurs de la liste LB_Rech1 dans ma collection 
     
       For J = 0 To .ListCount - 1
     
         Cle = .ListIndex + 1
     
         Unique.Add .List(J), CStr(Cle)
     
       Next J
     
       On Error GoTo 0
     
         'J'efface l'ancien contenu de ma listbox 
         .Clear
     
         ' MsgBox " La dimension de ma collection est " & Unique.Count
     
     
          'Je boucle sur le contenu de ma collection pour alimenter ma listbox
     
          For Each Valeur In Unique
     
     
          .AddItem Valeur
     
     
          Next Valeur
     
     End With
     
    End Sub
    Après l'exécution de mon code, j'ai le message d'erreur suivant : "Erreur 457, Cette clé est déjà associée à un élément de cette collection".

    Je souhaiterai qu'à partir de ma fonction, les doublons existant dans la listbox soient suprimés. Et qu'il n'y reste plus que des valeurs uniques.

    J'espère que l'un de vous pourra m'aider à y voir plus clair.
    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    3 erreurs :
    au lieu de Integer :
    remplacer :
    par :
    remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unique.Add .List(J), CStr(Cle)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unique.Add .List(J), Cle

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    à vu d'oeil, ta collection n'aura qu'un seul élément, puisque tu utilises toujours la même clé.
    Mais ça n'explique pas l'erreur d'exécution car tu es bien dans un bloc On Error Resume Next ....


    en tout cas, fait plutôt ainsi pour bien obtenir ta liste sans doublon, utilise l'élément de la listbox en tant que clé et valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    On Error Resume Next
        For J = 0 To .ListCount - 1
            Unique.Add .List(J), .List(J)
        Next J
    On Error GoTo 0

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2017
    Messages : 6
    Par défaut Modification
    Merci à tous les deux pour vos remarques qui vont dans le même sens,

    j'ai modifié mon code en conséquence et ça fonctionne parfaitement.

    C'était tout bête pourtant

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

Discussions similaires

  1. [Débutant] Copie items sélectionnés listbox sans doublon
    Par RKYDA dans le forum VB.NET
    Réponses: 4
    Dernier message: 19/06/2012, 16h11
  2. [MySQL] listbox sans doublon avec disabled
    Par akara dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/03/2009, 15h17
  3. listbox sans doublons
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2009, 22h14
  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