Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Combobox dynamique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

manu_tella

XLDnaute Junior
Bonjour,

J'ai un petit problème dans la construction d'une combobox dynamique...Je mets dans la discussion une pièce jointe car j'avoue ne pas comprendre.

j'ai deux combobox , une basée sur une liste de prénoms, et une basée sur des noms de villes.
Je souhaite simplement entrer a la main dans la combobox des caractères et que ça limite le choix (la combobox des prénoms fonctionne comme je souhaite).

j'ai recopié le code pour la combobox des villes mais là ça ne marche pas du tout comme prévu.
J'imagine que le problème se situe dans la liste des villes (basée sur une liste en ligne) mais je n'arrive pas à identifier ou ...
Je sèche complètement, auriez vous une petite idée???

D'avance merci pour votre aide.

manu
 

Pièces jointes

Solution
C
Re,

Désolé, mais je ne comprends pas


Edit : ok je viens de comprendre, si on saisi : "pog" par exemple

Voici le code
VB:
Sub ComboBox2_Change()
  ' Il faut transposer le tableau de ligne en colonne
  If Me.ComboBox2.ListIndex = -1 And IsError(Application.Match(Me.ComboBox2, list_ville, 0)) Then
    Me.ComboBox2.List = Filter(Application.Transpose(list_ville), Me.ComboBox2.Text, True, vbTextCompare)
    Me.ComboBox2.DropDown
  End If
End Sub

A+
Bonsoir Bruno,

Merci pour la réponse. En effet la déclaration du range en beaucoup plus saine.
Malheureusement ça ne résout pas le problème de la combobox2, elle n'a pas le même comportement que la combobox1.

Dans la combobox1, la liste est refiltrée systématiquement et même si on y entre une chaîne de caractères qui n'est pas dans la list_nom ça ne pose pas de problème.
Dans la combobox2, aucun filtre ne s'applique et si la chaîne de caractères n'est pas présente dans la liste_ville alors la fenêtre de debug s"ouvre.

je vois un écart dans les expression des listes:
list_nom => list_nom(1) => "André"
list_ville => list_ville (1) => liste_ville(1,1) = "Poitiers"

surement dû au fait que les villes sont en lignes et les noms en colonne.
comment dois-je déclarer la list_ville pour qu'elle ait le même format que list_nom?

d'avance merci

manu
 
Re,

Désolé, mais je ne comprends pas


Edit : ok je viens de comprendre, si on saisi : "pog" par exemple

Voici le code
VB:
Sub ComboBox2_Change()
  ' Il faut transposer le tableau de ligne en colonne
  If Me.ComboBox2.ListIndex = -1 And IsError(Application.Match(Me.ComboBox2, list_ville, 0)) Then
    Me.ComboBox2.List = Filter(Application.Transpose(list_ville), Me.ComboBox2.Text, True, vbTextCompare)
    Me.ComboBox2.DropDown
  End If
End Sub

A+
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
1 K
Réponses
15
Affichages
673
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…