Cellule liste semi auto

Signaler
Messages postés
42
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
21 juillet 2021
-
Messages postés
10178
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 juillet 2021
-
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

Messages postés
42
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
21 juillet 2021

Messages postés
10178
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 juillet 2021
1 165
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----!
Salutations.
Le Pingou
Messages postés
42
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
21 juillet 2021

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
Messages postés
42
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
21 juillet 2021

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
Messages postés
10178
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 juillet 2021
1 165
Bonjour,
Le gars à un nom. il s'agit de Boisgontier que je salue au passage.
Salutations.
Le Pingou
Messages postés
10178
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 juillet 2021
1 165
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
Messages postés
42
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
21 juillet 2021

Je n'ai pas Microsoft Form dans la liste. Normal ?
Messages postés
10178
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 juillet 2021
1 165
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.