Probleme : Erreure de Compilation VBA

Résolu/Fermé
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 - Modifié par pijaku le 23/10/2014 à 15:37
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 - 27 oct. 2014 à 08:21
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

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 oct. 2014 à 15:37
Bonjour,

Les TextBox n'ont pas de propriété List.
0
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 1
Modifié par drumer57 le 24/10/2014 à 09:17
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
24 oct. 2014 à 09:29
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
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 1
24 oct. 2014 à 10:18
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
24 oct. 2014 à 10:26
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
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 1
24 oct. 2014 à 10:38
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
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 1
24 oct. 2014 à 10:38
Code : Exemple et Utilisateur : exemple
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
24 oct. 2014 à 11:05
Je n'ai pas accès au code VBA, tu as mis un mot de passe...........
0
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 1
24 oct. 2014 à 11:12
code : SCH désolé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
24 oct. 2014 à 12:05
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
drumer57 Messages postés 77 Date d'inscription samedi 18 octobre 2014 Statut Membre Dernière intervention 27 mars 2021 1
27 oct. 2014 à 08:21
En fait, ca m'as l'air tout bon. Merci beaucoup pour ton aide !
0