Ma ListBox réagit bizarrement

Bonjour,

J'ai un soucis avec le fichier ci-joint. Si je clique sur le bouton en place et que j'inscrit par exemple 1410 ou 1752 dans le champ ''Numéro postal'' du UserForm_Nouveau_membre qui s'ouvre à l'écran, un deuxième formulaire nommé UserForm_Rues s'ouvre et me présente la liste des rues de cette localité (en écartant ce deuxième formulaire on voit qu'est apparu le nom du lieu sur le formulaire Nouveau_membre).

Je choisis alors une rue et elle vient s'inscrire dans le champs correspondant du formulaire Nouveau_membre.

Si le numéro postal choisi correspond à plusieurs localités, par exemple 1483 ou 1700, un autre formulaire UserForm_Multi_lieux s'ouvre et il faut choisir le bon lieu. Dans un tel cas, le formulaire UserForm_Rues ne se présente pas à l'écran, il n'est pas possible de choisir la bonne rue et une rue est inscrite d'office (il s'agit souvent de la 17ème ou 18ème rue de la liste de ce numéro postal).

Cependant, si je place un point d'arrêt tout à la fin du code Private Sub UserForm_Initialize() du formulaire UserForm_Rues et que je continue au pas à pas, le UserForm_Rues s'affiche correctement - quel que soit le numéro postal choisi - et je peux sélectionner la bonne rue, même dans une liste de 100, 200 rues.

Avez-vous une idée de solution ?

11demo.xlsm (288.92 Ko)

Bonsoir Yves

En fait j'ai déjà eu ce souci avec un autre projet. Il se fait que quand tu cliques dans l'user Multi_lieux et que tu sélectionnes par exemple Cluny, l'userform Multi_lieux se ferme et l'userform_rues s'ouvre puis se ferme directement et excel considère tu as aussi cliqué dans l'userform_rues !!
On dirait qu'excel considère que tu cliques dans deux userforms ! C'est un bug excel çà où je ne sais trop

Pour éviter ton problème il faut que l'userform multi lieux soit positionnée ailleurs sur ta feuille. Fais ceci :
- Ouvre l'userform_Multi_Lieux
- dans les propriétés de l'userform va à "Startup position"
- Change la valeur qui est sur 1 - center owner et mets là sur 3 - windows default

Refais un test...

Tu peux aussi déplacer l'userform Multi lieux manuellement avant de faire ton choix (mais plus compliqué... d'y penser) ou créer un code pour la positionner ailleurs si cela te gêne qu'elle soit en haut à gauche de ta feuille. Le principal étant que l'userform Rues ne s'ouvre pas au même endroit que l'userform Multi lieux.

Amicalement

Bonjour à tous,

Que penser de l'idée que le "UserForm_Rues" soit seul et qu'il contienne une 2e listbox qui ne s'afficherait que pour les cas Multi_lieux ?

ric

Salut les as,

et bien, merci Dan, j'aurais pu chercher longtemps l'origine de ce défaut !
Je l'ai contourné de cette façon :
- en supprimant dans Sub TextBox108_Change() tout appel à l'USF_Rues et à la TextBox107 ;
- cette USF_Rues n'est appelée qu'en cliquant sur TextBox10

Private Sub TextBox107_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'
UserForm_Rues.Show
'
End Sub


A+

Edit : déso, ma machine s'est déconnectée...
Je complète.

Private Sub ListBox1_Click()
    UserForm_Nouveau_membre.TextBox107.Text = Me.ListBox1
    Unload Me
End Sub

Bonjour tout le monde et merci beaucoup pour vos nombreuses idées. Je n'ai malheureusement pas eu le temps de les tester toutes.

Sur la base de celle de Dan, j'ai pensé de modifier plutôt les propriétés "Startup position" de l'UserForm_Rues, selon l'image ci-dessous et ça fonctionne parfaitement :

capture

Ce formulaire s'ouvre de manière pas trop décalée sur la gauche, ce n'est pas gênant du tout, selon le fichier ci-joint.

A noter que si j'indique une position Left un peu trop grande (450 ou 500), le problème resurgit. La valeur Left 400 choisie manuellement a été corrigée à 399.75 automatiquement après le lancement du code.

Encore un tout grand merci pour votre aide

12demo-v2.xlsm (294.01 Ko)
Rechercher des sujets similaires à "listbox reagit bizarrement"