Création UserForm un peu sophistiqué

Fermé
Nastinho Messages postés 9 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015 - Modifié par pijaku le 14/03/2015 à 10:48
Nastinho Messages postés 9 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015 - 18 mars 2015 à 22:27
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
14 mars 2015 à 09:06
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 vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
14 mars 2015 à 12:10
Bonjour,

Merci bcp, j'essaierai ça!

Cdt.
0
Nastinho Messages postés 9 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
14 mars 2015 à 12:38
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
14 mars 2015 à 13:02
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 vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
14 mars 2015 à 19:10
D'accord, merci bcp! en effet, étant novice, je fais pas mal de bêtises... :)

Cdt.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
14 mars 2015 à 20:43
Voilà un exemple, si cela peut t'aider!

http://www.cjoint.com/data3/3Cou2G6hOGA.htm
0
Nastinho Messages postés 9 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
14 mars 2015 à 23:36
ah oui effectivement, je vois très bien mtt! merci mille fois :)
0
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 mars 2015 à 13:31
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 mars 2015 à 14:13
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 vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
16 mars 2015 à 21:00
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
17 mars 2015 à 08:00
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
D'accord, merci bcp!
0
Nastinho Messages postés 9 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
17 mars 2015 à 23:01
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 vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
17 mars 2015 à 23:05
Pourtant il me semble bien que je mets le même code que vous....
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 mars 2015 à 07:56
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 mars 2015 à 08:05
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
Ah oui d'accord, j'ai capté... :) Merci!
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 mars 2015 à 14:28
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 vendredi 23 mars 2012 Statut Membre Dernière intervention 18 mars 2015
18 mars 2015 à 22:27
Merci bcp!
0