Cellule liste semi auto

Fermé
Dova Messages postés 42 Date d'inscription dimanche 29 juillet 2012 Statut Membre Dernière intervention 21 juillet 2021 - Modifié le 21 juil. 2021 à 19:44
Le Pingou Messages postés 12138 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 septembre 2024 - 22 juil. 2021 à 00:29
Bonjour,

Je cherche a mettre en place une liste déroulante semi-auto en VBA sauf qu'à chaque fois ça me dit "Erreur de compilation : Membre ou méthode ou données introuvablé" en parlant de Me.ComboBox1.List = a . Je ne comprend pas car je l'avais utilisé sur un autre doc mais là impossible de trouver pourquoi ça ne marche pas.

Es ce car il faut passer MatchEntry en None car je vois pas comment faire vue que les Combobox seulement quand on sélectionne la cellule

Merci d'avance.

Dim a(), mémo, f
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set f = Sheets("bd")
Set zSaisie = Range("A2:A16")
If Not Intersect(zSaisie, Target) Is Nothing And Target.Count = 1 Then
If mémo <> "" Then If IsError(Application.Match(Range(mémo), a, 0)) Then Range(mémo) = ""
a = Application.Transpose(f.Range("a2:a" & f.[A65000].End(xlUp).Row))
Me.ComboBox1.List = a
Me.ComboBox1.Height = Target.Height + 3
Me.ComboBox1.Width = Target.Width
Me.ComboBox1.Top = Target.Top
Me.ComboBox1.Left = Target.Left
Me.ComboBox1 = Target
Me.ComboBox1.Visible = True
Me.ComboBox1.Activate
mémo = Target.Address
Else
Me.ComboBox1.Visible = False
End If
End Sub

Private Sub ComboBox1_Change()
If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
Set d1 = CreateObject("Scripting.Dictionary")
tmp = UCase(Me.ComboBox1) & "*"
For Each c In a
If UCase(c) Like tmp Then d1(c) = ""
Next c
Me.ComboBox1.List = d1.keys
Me.ComboBox1.DropDown
End If
ActiveCell.Value = Me.ComboBox1
End Sub

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ComboBox1.List = Application.Transpose(f.Range("a2:a" & f.[A65000].End(xlUp).Row))
Me.ComboBox1.DropDown
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
If IsError(Application.Match(ActiveCell, a, 0)) Then ActiveCell = ""
ActiveCell.Offset(1).Select
End If
End Sub

7 réponses

Dova Messages postés 42 Date d'inscription dimanche 29 juillet 2012 Statut Membre Dernière intervention 21 juillet 2021
21 juil. 2021 à 20:46
0
Le Pingou Messages postés 12138 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 septembre 2024 1 446
Modifié le 21 juil. 2021 à 21:19
Bonjour,
Il serait plus profitable de vous aider avec le fichier à disposition. Si possible le mettre sur https://www.cjoint.com/ et poster le lien reçu.
Note: j'ai l'impression que dans votre code il est fait référence à un formulaire (UserForm) et il n'est pas visible dans votre image du poste 1----!
0
Dova Messages postés 42 Date d'inscription dimanche 29 juillet 2012 Statut Membre Dernière intervention 21 juillet 2021
21 juil. 2021 à 22:07
https://www.cjoint.com/c/KGvucwwv4ud
https://www.cjoint.com/c/KGvug4BNkld

Dans le 1er lien j'ai utilisé cette macro, pour la colonne B
et le second est celui que je veux utiliser pr la colonne B mais j'ai l'erreur que j'ai mis en haut
0
Dova Messages postés 42 Date d'inscription dimanche 29 juillet 2012 Statut Membre Dernière intervention 21 juillet 2021
21 juil. 2021 à 22:33
https://www.cjoint.com/c/KGvuFiv2efd
c le doc du gars ou j'ai trouvé le code
sauf que quand je colle sur un nouvel onglet; pareil ça me met l'erreur
0
Le Pingou Messages postés 12138 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 septembre 2024 1 446
21 juil. 2021 à 23:10
Bonjour,
Le gars à un nom. il s'agit de Boisgontier que je salue au passage.
Salutations.
Le Pingou
0

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

Posez votre question
Le Pingou Messages postés 12138 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 septembre 2024 1 446
21 juil. 2021 à 23:35
Bonjour,
Dans un premier temps il manque une référence dans VBAProject, Vous devez la cocher (voir en bleu si après :


Ensuite il n'y a pas de contrôle zone de liste déroulante [ComboBox1] dans la colonne [B] de votre feuille [21] de ce fait le code ne la trouve pas et vous avez le message d'erreur.
Corriger ses 2 éléments et tout devrait fonctionner
0
Dova Messages postés 42 Date d'inscription dimanche 29 juillet 2012 Statut Membre Dernière intervention 21 juillet 2021
21 juil. 2021 à 23:58
Je n'ai pas Microsoft Form dans la liste. Normal ?
0
Le Pingou Messages postés 12138 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 septembre 2024 1 446
22 juil. 2021 à 00:29
Bonjour c'est normal et plus agréable,
Soyez sans crainte elle existe bien---!
Vous devez parcourir la liste déroulante pour trouver la référence et ensuite la cocher.

0