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

  1. NonoM45 Messages postés 1047 Date d'inscription   Statut Membre Dernière intervention   5
     

    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
  2. 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