Création UserForm un peu sophistiqué

Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai réussi à créer un UserForm où j'ai deux OptionButton, dont l'un contient aussi 5 CheckBox (cf. image). Ce que je veux (mais que je n'arrive pas à obtenir):

1. Si on choisit le premier OptionButton et le premier CheckBox, par exemple, on m'affiche la feuille XXX et Synthesis B.
2. Si on choisit le premier OptionButton et le 2ème Checkbox, on m'affiche la feuille YYY et Synthesis E.

3. Si on choisit le 2ème OptionButton, on fait en sorte que ce soit impossible de cocher alors les cases des Checkbox du 1er optionbutton.

Ci-dessous le code que j'ai fait:

Sub CommandButton1_Click()
If OptionButton1.Enabled = True And CheckBox1.Enabled = True And CommandButton1.Enabled = True Then
    Unload Welcome
        Worksheets("XXX").Visible = True And Worksheets("SYNTHESIS B").Visible = True
ElseIf OptionButton1.Enabled = True And CheckBox2.Enabled = True And CommandButton1.Enabled = True Then
    Unload Welcome
        Worksheets("YYY).Visible = True And Worksheets("SYNTHESIS B").Visible = True
ElseIf OptionButton1.Enabled = True And CheckBox3.Enabled = True And CommandButton1.Enabled = True Then
    Unload Welcome
        Worksheets("ZZZ").Visible = True And Worksheets("SYNTHESIS E").Visible = True
ElseIf OptionButton1.Enabled = True And CheckBox4.Enabled = True And CommandButton1.Enabled = True Then
    Unload Welcome
        Worksheets("NNN").Visible = True And Worksheets("SYNTHESIS E").Visible = True
ElseIf OptionButton1.Enabled = True And CheckBox5.Enabled = True And CommandButton1.Enabled = True Then
    Unload Welcome
        Worksheets("VVV").Visible = True And Worksheets("SYNTHESIS HF").Visible = True
ElseIf OptionButton2.Enabled = True And CommandButton1.Enabled = True Then
    Unload Welcome
        Application.Run "Auto_Open1"
ElseIf CommandButton2.Enabled = True Then
Application.Quit
End If
End Sub


J'espère avoir été claire.

Merci par avance.

7 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Le plus simple mettre tes Checkbox dans une Frame
    Voici le code

    Private Sub OptionButton1_Click()
    Frame1.Visible = True
    End Sub
    Private Sub OptionButton2_Click()
    Frame1.Visible = False
    'code pour rendre les feuilles Visible = False
    End Sub
    

    0
    1. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour,

      Merci bcp, j'essaierai ça!

      Cdt.
      0
    2. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      Juste une question: si je mets le Frame, est-ce que je pourrai paramètrer quelles feuilles doivent apparaître? Car en fonction de Checkbox choisi, ce n'est pas la même feuille qui doit apparaître...

      Merci bcp.
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Cela ne change en rien le code des Checkbox . Mais je pense que le choix de Checkbox n'est pas judicieux. Quand on sait que l'on peut checker tous les Checkbox, où sera le choix? L'OptionButton est conseillé. Tu les mets dans une Frame à la place des Checkbox. Tu laisses tes OptionButton1 et 2 en dehors de la frame.
    Quand je vois cela:
    If OptionButton1.Enabled = True And CheckBox1.Enabled = True And CommandButton1.Enabled = True Then
    A quoi sert:
    CommandButton1.Enabled = True
    il est déjà à True puisque tu as cliqué dessus

    Il y a pas mal de code a corriger!

    Bon courage
    0
    1. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      D'accord, merci bcp! en effet, étant novice, je fais pas mal de bêtises... :)

      Cdt.
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voilà un exemple, si cela peut t'aider!

    http://www.cjoint.com/data3/3Cou2G6hOGA.htm
    0
    1. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      ah oui effectivement, je vois très bien mtt! merci mille fois :)
      0
    2. Nastinho
       
      Rebonjour,

      J'ai une autre question: comment faire pour que le Frame ne soit pas visible dès le départ mais uniquement quand on clique sur le optionbutton1? mtt quand je lance mon fichier, le USF se charge automatiquement et m'affiche tout...

      Merci.

      Cdt.
      0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Pour lancer l'UserForm à l'ouverture du classeur aller dans ThisWorkBook en haut à gauche et mettre ce code:

    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub
    


    Dans le classeur que j'ai posté la frame n'est pas visible!
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      comment faire pour que le Frame ne soit pas visible dès le départ
      Selectionner l'optionbutton2, Aller dans sa propriété à gauche et mettre :
      Value à True
      Pour pouvoir travailler sur une feuille avec l'UserForm ouverte. Aller dans les propriétés de l'UserForm et mettre:
      Showmodal à False
      0
    2. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      C'est quand même bizarre, mais quand j'ouvre le fichier le frame est visible dès le départ...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Tu mets dans :

    Private Sub UserForm_Initialize()
    Frame1.Visible = False
    InvisibleTouteFeuille
    End sub


    comme dans l'exemple que je t'ai mis sur cjoint
    0
    1. Nastinho
       
      D'accord, merci bcp!
      0
    2. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      J'y arrive pas ....
      Pourriez-vous regarder le fichier svp?
      Lien: https://www.cjoint.com/?3CrxkVDXjNo
      0
    3. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      Pourtant il me semble bien que je mets le même code que vous....
      0
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Cela fonctionne très bien. L'UserForm s'ouvre à l'ouverture. Je ne sais pas ce que tu cherche à faire!
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Pourtant il me semble bien que je mets le même code que vous....t

      NON, tu as mis des checkBox à la place des optionbutton et en plus sans code, cela ne risque pas de fonctionner!!!
      0
    2. Nastinho
       
      Ah oui d'accord, j'ai capté... :) Merci!
      0
  8. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voilà ton classeur, il faudra adapter les feuilles. Dans ThisWorkbook, j'ai mis une option pour ne pas enregistrer le classeur. Car dans la demande de mot de passe si tu cliques sur annuler, l'userform s'ouvre quand même. C'est à adapter!

    http://www.cjoint.com/data3/3CsoLlNVEZh.htm
    0
    1. Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci bcp!
      0