Masquer/Afficher selon le Optionbutton choisi.

Maspalio

XLDnaute Occasionnel
Bonjour à tous,

J'ai une userform avec quelques Optionsbuttons.

Selon, celui que je choisis, différents textboxs, Images, .. doivent apparaitre et disparaitre dans une Frame précise.

Ma question est : Existe une façon générique de tout mettre à Visible= False en ensuite mettre à True ceux dont on a besoin?

Ou dois-je passer au cas par cas comme suivant ?

Code:
Private Sub OptionButton1_Click()

TextBox1.Visible = True
TextBox2.visible = False
TextBox3.visible = False
TextBox4.visible = True

End Sub

Ce qui n'est pas super élégant, sachant que j'ai 5/6 textboxs, 5/6 Labels, et 4/5 Images avec lesquels je dois switcher en Visible True/False selon le optionbuttons (6 au total)

Merci,
 

Pierrot93

XLDnaute Barbatruc
Re : Masquer/Afficher selon le Optionbutton choisi.

Bonjour,

peut être faire une boucle lors de l'initialisaion... sans plus de détails...

Code:
Option Explicit
Private Sub UserForm_Initialize()
Dim c As Control
For Each c In Me.Controls
    If TypeName(c) = "TextBox" Then c.Visible = False
Next c
End Sub

et ensuite pour chaque "OptionButton" :
Code:
Private Sub OptionButton1_Change()
TextBox1.Visible = OptionButton1
End Sub

A noter, tu peux également utiliser un module de classe, tout dépend de ton projet, une petite recherche sur le forum te donnera de nombreux exemples..

bonne journée
@+
 

Maspalio

XLDnaute Occasionnel
Re : Masquer/Afficher selon le Optionbutton choisi.

Merci Pierrot93, effectivement en adaptant :


Code:
Private Sub OptionButton1_Click()
  Dim c As Control
    For Each c In FrameParametre.Controls
        c.Visible = False
        Next c

    TextBox1.Visible = True

End Sub

J'obtiens mon résultat attendu.


Merci encore.
 

Maspalio

XLDnaute Occasionnel
Re : Masquer/Afficher selon le Optionbutton choisi.

Non, c'est moi, Pierrot93.

J'avais oublié qu'avec "Next c" que j'avais pas besoin de "Exit For".

;) merci encore.

Au final j'ai fait un fonction :

Code:
Private Sub Choix_OptionButton()

 Dim c As Control
    For Each c In FrameParametre.Controls
        c.Visible = False
        Next c

End Sub

que j'appelle dans le choix du option button.

Code:
Private Sub OptionButton1_Click()
    
    Choix_OptionButton

    TextBox1.Visible = True

End Sub

Merci, encore pour la piste ;) l'aide .. :D
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz