Bouton annuler sur Userform

Galileo

XLDnaute Nouveau
Bonsoir le forum !

Je suis en train de réaliser un UserForm composé d'une dizaine de checkbox que l'utilisateur doit cocher ou non en fonction de la pertinence pour lui. Il est nécessaire qu'il puisse à tout moment ré-accéder à cet UserForm pour pouvoir modifier ses choix précédents (décocher ou cocher de nouvelles cases).

Sur l'UF, un bouton "valider" lui permet de reporter le texte lié aux checkbox dans des cellules une fois qu'il est satisfait.

Je cherche maintenant à créer un "vrai" bouton "annuler". En effet, s'il retourne sur l'UF, coche deux nouvelles cases puis clique sur le bouton annuler :
- si la commande liée à ce bouton est "Hide", la prochaine fois qu'il ouvrira l'UF il verra les deux cases cochées, mais pour autant leur valeur n'apparaîtra pas dans sa liste sous Excel ;
- si la commande liée à ce bouton est "Unload", à ce moment là tout est décoché à la prochaine ouverture.

Existe t-il une commande qui permettra de fermer l'UF sans prendre en compte les modifs effectuées depuis la dernière ouverture, sans tout réinitialiser pour autant...?

Je gravite sur les différents forums mais sans succès pour le moment, et suis preneur de vos idées/conseils !

Avec tous mes remerciements par avance,
Galileo
 

Theze

XLDnaute Occasionnel
Re : Bouton annuler sur Userform

Bonsoir,

Une feuille cachée où serait stocké les valeurs des différentes CheckBox (sur l'évènement Change des CheckBox). A l'ouverture de ta Form, tu va au préalable récupérer ces valeurs et adapter les différentes CheckBox par rapport aux valeurs stockées dans les cellules correspondantes.

Hervé.
 

Papou-net

XLDnaute Barbatruc
Re : Bouton annuler sur Userform

Bonsoir Galileo, Hervé,

Si j'ai bien saisi la teneur du problème, voici une façon de procéder sur le fichier joint :

J'ai créé un tableau de variables ChkBox() qui contient des valeurs booléennes attachées aux CheckBox de ton formulaire, A l'ouverture du fichier, la première ouverture du formulaire initialise les cases à Faux (non cochées). Si tu coches des cases et si tu cliques sur Valider, les valeurs sont enregistrées dans le tableau et réapparaissent telles quelles à la prochaine ouverture. Par contre, si tu cliques sur Annuler, le formulaire se ferme sans mettre le tableau à jour et ce sont donc les anciennes valeurs qui s'afficheront à l'ouverture suivante.

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

  • Galileo.xls
    36 KB · Affichages: 66
  • Galileo.xls
    36 KB · Affichages: 61
  • Galileo.xls
    36 KB · Affichages: 61

Galileo

XLDnaute Nouveau
Re : Bouton annuler sur Userform

Bonjour à tous et merci à tous les 3 pour vos réponses : c'est exactement ce que je cherchais !
J'ai appliqué la méthode de mapomme qui me paraissait la moins "lourde" en termes de codage.

En revanche pour aller encore un peu plus loin, j'ai du coup une autre difficulté : lorsque je ferme le fichier Excel où se trouve cet userform, puis que je le ré-ouvre, les cases qui étaient cochées sont toutes décochées d'office.

Est-il possible d'aider Excel à se souvenir des cases qui étaient cochées pour que celles-ci le soient à nouveau à la prochaine ouverture du fichier ?

Mon niveau VBA étant ce qu'il est, je m'excuse par avance pour l'éventuel manque de clarté de mon besoin :)

Très cordialement,
Galileo
 

Papou-net

XLDnaute Barbatruc
Re : Bouton annuler sur Userform

Bonjour à tous,

@ Galileo,

Petite précision : ma solution peut paraître plus lourde en termes de codage, et elle l'est effectivement.

Mais elle présente l'avantage suivant :

On peut ajouter ou retirer des CheckBox à volonté sans avoir à modifier le code puisque celui-ci détecte automatiquement les contrôles présents sur le formulaire.

Quant à la seconde difficulté, notre ami Theze y a déjà répondu dans le message n°2 : sauvegarder les valeurs dans une feuille cachée (ou tout aussi bien dans des cellules cachées sur la feuille de travail).

Bonne journée.

Cordialement.
 

Galileo

XLDnaute Nouveau
Re : Bouton annuler sur Userform

Vi, mais en toute honnêteté j'ai pas totalement pigé ce qu'il propose (je suis péniblement autodidacte de VBA...) :/
Je vois comment créer une feuille cachée, mais quelle valeur faut-il sauvegarder dessus exactement et comment les "récupérer" à l'ouverture de l'UF...
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Bouton annuler sur Userform

Bonsoir Galileo,

Un essai dans le fichier joint.
La feuille "Invisible" comporte en A1 le préfixe des noms des cases à cocher. La numérotation des noms des cases à cocher débute à 1. En A2, A3... on trouvera leurs valeurs. La feuille "Invisible" peut-être masquée.
 

Pièces jointes

  • Options v2.xls
    53 KB · Affichages: 53

Papou-net

XLDnaute Barbatruc
Re : Bouton annuler sur Userform

Bonsoir à tous,

Dans la même idée que Theze, et concrétisée par mapomme, voici mon fichier complété avec la l'onglet Feuil2 qui enregistre la valeur des CheckBox. J'ai laissé cette feuille apparente pour l'exemple mais il est conseillé de la masquer.

Comme dans la version précédente, l'ajout ou la suppression des cases à cocher n'exige pas d'intervention au niveau du code.

Bonne soirée.

Cordialement.
 

Pièces jointes

  • Galileo 01.xls
    37.5 KB · Affichages: 90
Dernière édition:

Galileo

XLDnaute Nouveau
Re : Bouton annuler sur Userform

Bonjour à tous,

de retour après quelques jours de pause autour du 15 août je trouve vos différentes solutions, qui marchent parfaitement : merci beaucoup donc et bravo le forum ! :)

Bien cordialement,
Galileo
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia