Microsoft 365 VBA OptionButton

Roms2603

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je ne suis pas formé en vba mais j'essaye de m'en sortir avec mon fichier en regardant des tutos.

J'ai plusieurs OptionButton sur un userform. J'en ai 9 sur un GroupName 1 et 2 sur un GroupName 2.
Ces boutons servent à cacher des lignes.
Lorsque je sélectionne un bouton dans le GroupName 2 cela réinitialise également les lignes cachées du GroupName 1, contrairement à ce que je souhaiterai.

Comment puis-je faire pour les différencier ?
Comment faire pour que la sélection du GroupName 2 n'efface pas l'action du GroupName 1 ?

N'hésitez pas à me relancer si vous ne comprenez pas bien l'explication.

Merci d'avance.

Voici un bout du code (je n'y connais pas grand chose le code peut surement être simplifié) :

VB:
'Dernier OptionButton de la série GroupName 1'
Private Sub OptionButton_f_9_Click()
Rows.EntireRow.Hidden = False
Rows("12:20").Hidden = True
Rows("25:32").Hidden = True
Rows("46:47").Hidden = True
Rows("53:54").Hidden = True
Rows("56:57").Hidden = True
Rows("60").Hidden = True
Rows("73").Hidden = True
Rows("84:93").Hidden = True
Rows("128:144").Hidden = True
End Sub

'Les 2 OptionButton de la série GroupName 2'
Private Sub OptionButton_g_1_Click()
Rows.EntireRow.Hidden = False
Rows("119:126").Hidden = True
End Sub
Private Sub OptionButton_g_2_Click()
Rows.EntireRow.Hidden = False
Rows("119:126").Hidden = False
End Sub
 

fanch55

XLDnaute Barbatruc
Salut,
c'est le code Rows.EntireRow.Hidden = False appelé dans tous les optionbutton qui remet toutes les lignes visibles et donc neutralise tout ce qui a pu être caché avant .
Il faut savoir ce dont vous avez besoin: si le groupe 2 est un complément au groupe 1, le code Rows.EntireRow.Hidden = False n'est pas nécessaire .

Le 2ème optionbutton du groupe 2 (tel qu'il est) est inefficient, on lui demande de montrer des lignes qui sont déjà visibles ...
 
Dernière édition:

Roms2603

XLDnaute Nouveau
Merci pour les réponses.
J'avais mis Rows.EntireRow.Hidden = False dans tous les optionbutton car je souhaitais que l'optionbutton sélectionné (exemple F2 dans le fichier joint) ne cache que les lignes qui le concerne.
Je me suis aperçu avant de mettre Rows.EntireRow.Hidden = False que lorsque je basculais de F1 à F3 dans le UserForm par exemple, cela faisait disparaitre les lignes de F1 et F3, et pas uniquement F3.
Le groupe 2 est en effet un complément du groupe 1.
Pour le 2ème optionbutton du groupe 2 je laisse vide, sans action ?
 

Pièces jointes

  • Test.xlsm
    40.6 KB · Affichages: 1

Discussions similaires

Réponses
2
Affichages
490

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35