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.
A voir également:

7 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci bcp, j'essaierai ça!

Cdt.
0
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Voilà un exemple, si cela peut t'aider!

http://www.cjoint.com/data3/3Cou2G6hOGA.htm
0
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
Nastinho
 
D'accord, merci bcp!
0
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Cela fonctionne très bien. L'UserForm s'ouvre à l'ouverture. Je ne sais pas ce que tu cherche à faire!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
Nastinho
 
Ah oui d'accord, j'ai capté... :) Merci!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
Nastinho Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Merci bcp!
0