Probleme : Erreure de Compilation VBA

Résolu
Bonjour,

J'ai un petit probleme.

Il me met en surbrillance le ".List ="
et je ne sais pas pourquoi.
Le message d'erreure est : "Erreure de Compilation : Membre de méthode ou de données introuvable".
Pourtant j'ai bien une liste et j'ai généré le nom : [Designation]
Mon code :

Private Sub ComboBox2_Change()
Set Mondico = CreateObject("Scripting.Dictionary")
Me.ComboBox2.Clear
For Each d In [Designation]
    If UCase(d.Offset(o,-1)) = UCase(Me.ComboBox2) Then
         If Not Mondico.exists(UCase(c.Value)) And d <> "" Then
             Mondico.Add UCase(d.Value), UCase(d.Value)
         End If 
    End If
Next d
Me.TextBox3.List = Mondico.items

6 réponses

  1. Modérateur
    Bonjour,

    Les TextBox n'ont pas de propriété List.
    0
    1. Ah bah oui !
      Merci j'ai créé une ListBox à la place !

      Petit problème, ca ne marche toujous pas . Je dois mettre quoi à la place?
      merci
      0
      1. Modérateur
        Bonjour,

        1-
        Me.ComboBox2.Clear

        Tu supprimes le contenu de ta combobox lorsque tu changes une de ces valeurs... Pourquoi?
        ==> Supprime cette ligne.

        2-
        If Not Mondico.exists(UCase(c.Value)) And d <> "" Then

        Erreur de copié-collé. Une fois c, une fois d. Si tu avais déclaré tes variables tu t'en serais aperçu...
        CEla nous donne donc :

        Private Sub ComboBox2_Change()
        Dim Mondico As Object, d As Variant
        Set Mondico = CreateObject("Scripting.Dictionary")
        
        For Each d In [Designation]
            If UCase(d.Offset(o, -1)) = UCase(Me.ComboBox2) Then
                 If Not Mondico.exists(UCase(d.Value)) And d <> "" Then
                     Mondico.Add UCase(d.Value), UCase(d.Value)
                 End If
            End If
        Next d
        Me.ListBox1.List = Mondico.items
        End Sub

        0
        1. Merci beaucoup,

          c'est normal que quand je selectionne la valeur de la comboBox2, la listbox m'affiche pas la valeur de la colonne [designation], ca ne m'affiche rien?

          En tout cas merci beaucoup pour ton aide
          0
          1. Modérateur
            Seul toi peut répondre à cette question. Je te rappelle que nous n'avons pas accès à tes données...
            Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com

            Va sur ce site : https://www.cjoint.com/
            Clic sur parcourir,
            Cherche ton fichier,
            clic sur ouvrir,
            Clic sur "Créer le lien cjoint",
            Copier le lien,
            Revenir ici le coller dans une réponse...
            0
          2. https://www.cjoint.com/?0JykQl2DRXH

            Voila, alors en meme temps, j'aimerais quand je clique sur suprimer, ca me supprime la ligne et que les lignes du bas remonte
            0
          3. Code : Exemple et Utilisateur : exemple
            0
          4. Modérateur
            Je n'ai pas accès au code VBA, tu as mis un mot de passe...........
            0
          5. code : SCH désolé
            0
        2. Modérateur
          Private Sub ComboBox2_Change()
          Dim Mondico As Object, d As Variant
          Set Mondico = CreateObject("Scripting.Dictionary")
          
          For Each d In [Designation]
              If UCase(d.Offset(0, -1)) = UCase(Me.ComboBox1) Then Mondico(d.Value) = ""
          Next d
          Me.ListBox1.List = Mondico.keys
          End Sub


          For Each d In [Designation] => boucle sur toutes les cellules du Range nommé Designation

          If UCase(d.Offset(0, -1)) = UCase(Me.ComboBox1) Then => Si les valeurs sont identiques

          Mondico(d.Value) = "" => Je l'ajoute dans mon dictionary avec impossibilité de doublon

          Me.ListBox1.List = Mondico.keys => Je remplit ma liste

          Que n'as tu pas compris exactement?

          ==> Tutoriel sur l'objet dictionnary
          0
          1. En fait, ca m'as l'air tout bon. Merci beaucoup pour ton aide !
            0