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

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

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+

job75

XLDnaute Barbatruc
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+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Job75

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, @+
 

job75

XLDnaute Barbatruc
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...
 

job75

XLDnaute Barbatruc
@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

  • Test-2.xlsm
    33.2 KB · Affichages: 5

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
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
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Gérard : j'aime bien cette solution ... je vais voir,
Et encore MERCI
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…