Microsoft 365 Combobox dynamique

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

  • test_combo_dyn.xlsm
    27 KB · Affichages: 6
Solution
Re,

Désolé, mais je ne comprends pas
2021-11-24_21h14_58.gif


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+

manu_tella

XLDnaute Junior
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
 

BrunoM45

XLDnaute Barbatruc
Re,

Désolé, mais je ne comprends pas
2021-11-24_21h14_58.gif


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 édition:

Discussions similaires