ENABLED: propriété bouton

Bonjour,

Etant débutant en macro, je cherche à protéger un bouton. C'est à dire que je souhaiterai qu'il n'exécute des instructions que si et seulement si l'utilisateur a choisi au moins un élément d'une listbox.

J'ai pensé à faire un "If ListBox.Item n'est pas selected alors exit sub". Cependant il suffisait qu'un item non sélectionné au milieu d'autres sélectionnés et voilà que cela annulait toute la subroutine. Mon bouton n’exécutait donc jamais ses instructions.

Alors on m'a parlé d'une propriété à affecter au bouton afin qu'on ne puisse pas cliquer dessus tant que aucun Item de la listbox n'est sélectionné: le ENABLED.

Cependant je ne sais pas m'en servir c'est pourquoi je sollicite votre aide. Pouvez-vous m'en montrer un exemple s'il vous plaît.

Merci beaucoup

bonjour,

ça n'a aucun intérêt pour un combo unique puisque tu as l'évènement change qui gère les saisies (dans le classeur que je connais...)

c'est difficile de te faire un exemple comme ça dans le vide, car ça dépend beaucoup du contexte. En pratique on utilise assez peu Enabled car il n'est pas pratique. Il est préférable de laisser le bouton toujours Enable et vérifier si toutes les saisies sont satisfaisantes.

Dans le fichier joint on combine les deux : c'est le champ Certificat Médical qui rend disponible le bouton de validation, mais le bouton lui-même prend en charge toutes les vérifications indispensables en appelant la procédure VerifAll...

Pour Afficher le USF cliquer sur la première colonne.

A+

Hum... Pour résumer il faut distinguer 2 phases

1- la mise à Enabled du bouton qui peut se faire à la fin de l'élément change de ton Combo :

CBnOk.Enabled = True

2 - Et les vérification que doit faire le bouton avant d'accepter les données. (Car le fait d'être Enabled ne garantit pas que les données sont valides...) L'utilisateur ayant pu par exemple supprimer sa saisie... !!!

A+

50eab1415.zip (69.84 Ko)

Bonjour,

En réalité c'est un Listbox à multi choix et pas un combo (je sais pas si il y a une différence mais je pense) .

OK je comprends pourquoi ENABLED n'est pas efficace. Et du coup, tu me conseillerait quoi pour éviter le message d'erreur ("Débogage") qui apparait lorsque l'on clique sur un bouton alors que aucun élément de la listbox n'ait été sélectionné par l'utilisateur.

(Bien sûr le bouton a pour but d’exécuter des instructions qui dépendent de la sélection d'Item de la Listbox, sinon ça n'afficherait pas de message d'erreur).

Merci

A +

Non une ListBox ne se gère pas comme un Combo.

Il faut juste mettre un contrôle de saisie dans l'évènement Click du Bouton

voir la démo.

A+

71demolistbox.xlsm (19.49 Ko)

Effectivement cela fonctionne très bien, je vais abandonner l'idée du ENABLED du coup merci

Quand tu dis : "Il faut juste mettre un contrôle de saisie dans l'évènement Click du Bouton" , tu veux parler d'une ligne spécifique du code dans la partie click du bouton que t'as écrite OU BIEN une propriété du bouton que t'as activée.

Excuse moi d'être lourd avec mes questions

A +

Yes !

C'est cette ligne qui vérifie qu'il y a bien une n'y a aucune saisie :

If ListBox1.ListIndex = -1 Then
Exit Sub
Else
...

Merci pour touuuuut

Rechercher des sujets similaires à "enabled propriete bouton"