Champs visibles ou invisibles dans un formulaire

gduboi14 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 gduboi14 -

Bonjour,

J'ai un formulaire de saisie avec, notamment, un contrôle à 2 options: 1 et 3. Lorsque l'option 3 est choisie 4 champs apparaissent, qui n'apparaissent pas lorsque l'option 1 est choisie. A l'ouverture j'ai paramettré l'option 1 par défaut et les 4 champs non visibles. Sur le contrôle à cocher j'ai fait une macro qui rend visibles les 4 champs lorsque l'option 3 est choisie. Ca marche.

Mon problème est que après avoir validé un enregistrement avec l'option 3 cochée, le formulaire se réinitialise avec la case 1 cochée (par défaut, normal) mais les champs "optionnels" restent affichés. Ils ne disparaissent que lorsque je clique alternativement sur 3 puis à nouveau 1. J'aimerais, par cohérence , que ces 4 champs ne s'affichent jamais lorsque le 1 apparait coché. Merci de votre aide


Windows / Firefox 150.0

2 réponses

NonoM45 Messages postés 1006 Date d'inscription   Statut Membre Dernière intervention   11
 

Bonjour @gduboi14 StatutMembre

C'est que votre code n'est pas correct ou mal placé.

Il faut mettre dans un module, le code qi affiche/masque les champs optionnels

Et lors de la validation, avant de réinitialiser votre formulaire, vous appelez cette procédure

Le mieux est un procédure avec paramètre

Sub AfficherChamps(Flg As Boolean)
  Select Case Flg
  Case True
    Form_Formulaire1.Option5.Visible = True
    Form_Formulaire1.Option6.Visible = True
    Form_Formulaire1.Option7.Visible = True
    Form_Formulaire1.Option8.Visible = True
  Case False
    Form_Formulaire1.Option5.Visible = False
    Form_Formulaire1.Option6.Visible = False
    Form_Formulaire1.Option7.Visible = False
    Form_Formulaire1.Option8.Visible = False
  End Select
End Sub

Que l'on appelle avec False pour masquer les contrôles

Call AfficherChamps(False)

A+

0
gduboi14
 

Bonjour et merci de la réponse.

J'essaie de concevoir uniquement avec des macros (nul en Visual) et j'ai finalement trouvé une solution après beaucoup de tentatives infructueuses qui rejoint ce que vous suggérez:

La macro qui fonctionne sur le contrôle à options et que j'ai positionnée "après MaJ", je l'ai recopiée "sur activation" sur les propriétés du formulaire.

Ça a l'air de fonctionner

Merci encore

0