Microsoft 365 ComboBox ne pas sortir si clic hors sélection dans la list

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à toutes et à tous 🙂

Quand on "lance " un UserForm" le choix modal ou non modal est possible :
Mon_UserForm.Show
modal :
Par défaut, un UserForm est "modal" ce qui implique que vous ne pouvez pas travailler sur une feuille tant que l'UserForm est ouvert.
Mon_UserForm.Show 0
non modal :
En mode "non modal", vous pouvez travailler sur une feuille tout en ayant un UserForm ouvert. Pour cela, ajoutez un "0" à l'ouverture.

Voici ma question
Dans mon fichier, j'ai un ComboBox mais sans UserForm :
Quand il est ouvert, est-il possible de bloquer la feuille comme pour "Mon_UserForm.Show" = modal ?

Jusqu'à maintenant, je n'ai pas trouvé.
Auriez-vous une solution ?
Merci à tous,
lionel 🙂
 
Solution
Bonjour Lionel, le forum,

Ton problème c'est que tu bricoles les codes qu'on te donne et après ils ne tiennent plus la route.

Ton test avec la cellule P1 est bien maladroit alors qu'il suffit de tester "MaCell".

Les macros Worksheet_Activate en Feuil1 et Feuil2 sont totalement inutiles puisque la macro "Affiche" renvoie toujours sur la feuille "Gérard".

Et la macro "désactive_alphabet' est vraiment sans intérêt puisqu'on peut entrer des chiffres ou d'autres caractères, il vaut mieux protéger la feuille, je l'ai fait avec le mot de passe toto.

Utilise donc ce fichier (6).

A+
Bonjour à tous,

Je ne connaissais pas non plus Application.Interactive.

J'aurais mis bêtement dans le code de la feuille :
VB:
Private Sub ComboBox1_LostFocus()
ComboBox1.Activate
End Sub
ou :
Code:
Private Sub ComboBox1_LostFocus()
If ComboBox1.ListIndex = -1 Then ComboBox1.Activate
End Sub
A+
 
Bonjour Job75

Bonjour à tous,

Je ne connaissais pas non plus Application.Interactive.

J'aurais mis bêtement dans le code de la feuille :
VB:
VB:
Private Sub ComboBox1_LostFocus()
ComboBox1.Activate
End Sub
ou :
Code:
Code:
Private Sub ComboBox1_LostFocus()
If ComboBox1.ListIndex = -1 Then ComboBox1.Activate
End Sub
marchera pas sans référencer la cellule active à l'activation de la combobox pour appliquer les changements sur la bonne cellule car sinon la combobox reste affichée mais la cellule active a changé.

Bonne journée
Bien cordialement, @+
 
marchera pas sans référencer la cellule active à l'activation de la combobox pour appliquer les changements sur la bonne cellule car sinon la combobox reste affichée mais la cellule active a changé.
On utilisera plutôt la propriété LinkedCell.

Mais surtout les macros du post #20 bouclent sans fin quand on essaie de fermer le fichier.

Il faut quitter Excel par le Gestionnaire des tâches...
 
@Lionel je ne pense pas que ce soit une bonne idée de bloquer la ComboBox.

Il faut que l'utilisateur puisse la quitter s'il en a envie, par exemple avec une LostFocus :
VB:
Private Sub Combo1_LostFocus()
Combo1.Visible = False
End Sub
Le focus est donné à la ComboBox lors du double-clic, vois le fichier joint.
 

Pièces jointes

output.gif
 
Dernière édition:
re,
le code "Application.Interactive" bloque trop souvent le fichier
ça bloque le fichier si tu bascules sur visual basic ouvert alors que la liste est affichée, car la liste se ferme alors sans déclencher le combo1_change et le application.interactive = true, pas vraiment ce que pourra faire un simple utilisateur du fichier.
et tu peux inclure une macro à lancer depuis VBE pour le rétablir quand cela t'arrive ce qui t'évitera de passer par le gestionnaire des taches
VB:
Sub app_inter_true()
Application.Interactive = True
End Sub
 
@Lionel je ne pense pas que ce soit une bonne idée de bloquer la ComboBox.

Il faut que l'utilisateur puisse la quitter s'il en a envie, par exemple avec une LostFocus :
VB:
Private Sub Combo1_LostFocus()
Combo1.Visible = False
End Sub
Le focus est donné à la ComboBox lors du double-clic, vois le fichier joint.
Re-Gérard : j'aime bien cette solution ... je vais voir,
Et encore MERCI 🙂
 
- 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

Retour