Microsoft 365 VBA OptionButton

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Bonjour Roms,
Sans PJ difficile de corriger.
Mais vos trois macros commençant par "Rows.EntireRow.Hidden = False" fatalement cela détruit l'action du bouton précédent.
Il faut masquer/démasquer que les lignes concernées par le bouton, et non pas tout démasquer.
 
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:
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
539
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
80
Réponses
2
Affichages
842
Réponses
10
Affichages
487
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
234
Retour