Supprimer Doublons liste déroulante VBA

Résolu
DEl -  
 DEl -
Bonjour,

J'ai créé une liste déroulante en code VBA sur excel, mais a chaque nouvelle entrée la liste se duplique comment faire pour eviter que cela se produise ?

voila le code tapé sur vba :
'Paramètres de la liste déroulante unités
Private Sub userform_Activate()
With Me.zlmUnité
.AddItem ("pièce")
.AddItem ("kg")
.AddItem ("litre")
End With
End Sub


Merci d,'avance !

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Il faut Clear votre liste avant de la re-remplir :

    'Paramètres de la liste déroulante unités
    Private Sub userform_Activate()
    With Me.zlmUnité
        .Clear
        .AddItem ("pièce")
        .AddItem ("kg")
        .AddItem ("litre")
    End With
    End Sub 

    1
  2. DEl
     
    Maintenant que j'ai reglé mon problème de doublons un autre probleme s,amène à moi :
    j'ai deux listes déroulantes au sein d'une meme boite de dialogue le soucis est que lorsque l'une s'affiche, l'autre n'affiche plus les entrees dans la seconde liste deroulante ... que faire ?

    'Paramètres de la liste déroulante unités
    Private Sub Ingrédient_Activate()
    With Me.cboUnité
    .Clear
    .AddItem ("pièce")
    .AddItem ("kg")
    .AddItem ("litre")
    End With
    End Sub

    'Paramètres de la liste déroulante catégorie
    Private Sub userform_Activate()
    With Me.cboCatégorie
    .Clear
    .AddItem ("Epicerie sèche")
    .AddItem ("Crèmerie")
    .AddItem ("Fromages")
    .AddItem ("Viandes")
    .AddItem ("Poisson")
    .AddItem ("Légumes secs et graines")
    .AddItem ("Farines")
    .AddItem ("Fruits secs et conserves sucrées")
    .AddItem ("Condiments sucrés et salés")
    .AddItem ("Préparations conserves")
    .AddItem ("Fruits")
    .AddItem ("Légumes")
    End With
    End Sub

    merci d'avance !
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Qu'est ce que représentent userform et Ingrédient? deux Userforms différents?
      Private Sub Ingrédient_Activate()
      Private Sub userform_Activate()
      0
      1. DEl > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Non il n'y a qu'un userform celui de Ingrédient mais en gardant Ingredients pour les deux formules vba ca ne fonctionne pas :/
        0
      2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > DEl
         
        Tu n'as qu'un seul userform, donc un seul événement Activate.
        Soit :
        Private Sub Ingrédient_Activate()
        'Paramètres de la liste déroulante unités
        With Me.cboUnité
            .Clear
            .AddItem ("pièce")
            .AddItem ("kg")
            .AddItem ("litre")
        End With
        'Paramètres de la liste déroulante catégorie
        With Me.cboCatégorie
            .Clear
            .AddItem ("Epicerie sèche")
            .AddItem ("Crèmerie")
            .AddItem ("Fromages")
            .AddItem ("Viandes")
            .AddItem ("Poisson")
            .AddItem ("Légumes secs et graines")
            .AddItem ("Farines")
            .AddItem ("Fruits secs et conserves sucrées")
            .AddItem ("Condiments sucrés et salés")
            .AddItem ("Préparations conserves")
            .AddItem ("Fruits")
            .AddItem ("Légumes")
        End With
        End Sub 
        0
    2. DEl
       
      lorsque je fait ce code plus rien ne s'affiche dans les liste déroulante ... :/
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Je ne me suis pas demandé pourquoi tu avais placé ce code dans le Activate de ton Userform.
    Place le dans l'événement initialize, comme ceci :
    Private Sub UserForm_Initialize()
    'Paramètres de la liste déroulante unités
    With Me.cboUnité
        .Clear
        .AddItem ("pièce")
        .AddItem ("kg")
        .AddItem ("litre")
    End With
    'Paramètres de la liste déroulante catégorie
    With Me.cboCatégorie
        .Clear
        .AddItem ("Epicerie sèche")
        .AddItem ("Crèmerie")
        .AddItem ("Fromages")
        .AddItem ("Viandes")
        .AddItem ("Poisson")
        .AddItem ("Légumes secs et graines")
        .AddItem ("Farines")
        .AddItem ("Fruits secs et conserves sucrées")
        .AddItem ("Condiments sucrés et salés")
        .AddItem ("Préparations conserves")
        .AddItem ("Fruits")
        .AddItem ("Légumes")
    End With
    End Sub


    🎼 Cordialement,
    Franck 🎶
    0
    1. DEl
       
      Parfait ça fonctionne enfin comme je le souhaite ! Merci beaucoup ! :)
      0