Macro afficher/masquer lignes avec bouton

  • Initiateur de la discussion Initiateur de la discussion FranckS
  • Date de début Date de début

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 !

FranckS

XLDnaute Nouveau
Bonjour à tous,

Connaissances en VisualBasil nulles et ayant parcouru le forum sans succès, je sollicite votre aide.
J’ai besoin de 2 macros pour masquer et afficher des lignes dans une feuille Excel que j’affecte à un bouton.

Première macro :
En cliquant sur le bouton
=> Masque les lignes 37 à 42 et 49 à 54
=> Affiche les lignes 43 à 48
Et puis en recliquant sur le bouton , on fait le contraire
=> Affiche 37 à 42 et 49 à 54
=> Masque les lignes 43 à 48

Deuxième macro
En cliquant sur le bouton
=> Masque les lignes 37 à 42 et 43 à 48
=> Affiche les lignes 49 à 54
Et puis en recliquant sur le bouton , on fait le contraire
=> Affiche 37 à 42 et 49 à 54
=> Masque les lignes 43 à 48

Voici ce que j’ai fait pour la première :
Sub grouper_cap_25()
With Rows("43:48")
If Not .Hidden Then .Hidden = True Else .Hidden = False
End With
With Rows("37:42")
If .Hidden Then .Hidden = False Else .Hidden = True
End With
With Rows("49:54")
If .Hidden Then .Hidden = False Else .Hidden = True
End With
End Sub

Merci d’avance pour votre aide.

Bonne journée,
Franck
 
Re : Macro afficher/masquer lignes avec bouton

Bonjour
par exemple
Code:
Sub masque()
Rows("37:42").Hidden = True
Rows("49:54").Hidden = True
Rows("43:48").Hidden = False
end sub
Sub affiche()
Rows("37:42").Hidden = False
Rows("49:54").Hidden = False
Rows("43:48").Hidden = True
end sub
 
Re : Macro afficher/masquer lignes avec bouton

Hello
Avec un seul bouton qui bascule du mode "Affiché à Masqué et vice versa"

Code:
Sub bascule()
Rows("37:42").Hidden = Not (Rows("37:42").Hidden)
Rows("49:54").Hidden = Not (Rows("49:54").Hidden)
Rows("43:48").Hidden = Not (Rows("43:48").Hidden)
End Sub
 
Re : Macro afficher/masquer lignes avec bouton

Bonjour,

Merci pour vos réponses.

Le code de vgendron est excellent
Code:
Sub bascule()
Rows("37:42").Hidden = Not (Rows("37:42").Hidden)
Rows("49:54").Hidden = Not (Rows("49:54").Hidden)
Rows("43:48").Hidden = Not (Rows("43:48").Hidden)
End Sub
mais il faudrait que les lignes 43:48 s'affichent quand les autres se masquent.
Donc peut-on modifier la ligne de code "Rows("43:48").Hidden = Not (Rows("43:48").Hidden)" pour qu'elle fasse le contraire ?

Merci,
Franck
 
Re : Macro afficher/masquer lignes avec bouton

Oups. Oui en effet, quand je teste sur sa feuille c'est parfait !
Sauf que je coince pour le mettre en place sur ma feuille :-(
Jusqu'à présent, je "stockais" ma macro dans un "Module", je mettrai un bouton "Contrôle de formulaire" et je lui affectais la macro.
Là, j'ai l'impression que la macro est dans le bouton 🙂, j'ai regardé le menu développeur. Il s'agirait d'insérer un bouton "Contrôle ActiveX" et dans l'objet du bout de commande de mettre la macro ?
Merci,
Franck
 
Re : Macro afficher/masquer lignes avec bouton

Il est tard,

au #4
menu developpeur, inserer, contrôle active X Bouton à bascule
Clic droit sur le bouton ainsi créé et visualiser le code
"Private Sub ToggleButton1_Click()

End sub"
se placent tout seul
tu n'as qu'a insérer le code entre deux
le code du bouton se place donc dans la feuille concernée
ou tu insérais un module, double clic sur la feuille contenant le bouton (ici la Feuil1)
 
Re : Macro afficher/masquer lignes avec bouton

Bonjour
C'était tard en effet.
Ca fonctionne nickel chrome ! Merci.

Par contre, j'ai essayé de mettre un second bouton, du coup il se nomme ""Private Sub ToggleButton2_Click()" et de mettre le code approprié (affichage des lignes différents) et là, ça fonctionne plus. Voici la façon dont le code s'affiche dans Feuil1 :
Code:
Private Sub ToggleButton1_Click()
Dim FR1$, FR2$, FR3$
FR1 = "37:42": FR2 = "49:54": FR3 = "43:48"
If ToggleButton1.Value Then
Rows(FR1).Hidden = True
Rows(FR2).Hidden = True
Rows(FR3).Hidden = False
End If
If Not ToggleButton1.Value Then
Rows(FR3).Hidden = True
Rows(FR1).Hidden = False
Rows(FR2).Hidden = True
End If
End Sub

"ici une barre horizontale de séparation"

Private Sub ToggleButton2_Click()
Dim FR1$, FR2$, FR3$
FR1 = "37:42": FR2 = "49:54": FR3 = "43:48"
If ToggleButton1.Value Then
Rows(FR1).Hidden = True
Rows(FR2).Hidden = False
Rows(FR3).Hidden = True
End If
If Not ToggleButton1.Value Then
Rows(FR3).Hidden = True
Rows(FR1).Hidden = False
Rows(FR2).Hidden = True
End If
End Sub

Merci,
Franck
 
Re : Macro afficher/masquer lignes avec bouton

Oups, pas bien les copier/coller sans réfléchir. Désolé... J'ai trouvé.
Code:
Private Sub ToggleButton1_Click()
Dim FR1$, FR2$, FR3$
FR1 = "37:42": FR2 = "49:54": FR3 = "43:48"
If ToggleButton1.Value Then
Rows(FR1).Hidden = True
Rows(FR2).Hidden = True
Rows(FR3).Hidden = False
End If
If Not ToggleButton1.Value Then
Rows(FR3).Hidden = True
Rows(FR1).Hidden = False
Rows(FR2).Hidden = True
End If
End Sub

Private Sub ToggleButton2_Click()
Dim FR1$, FR2$, FR3$
FR1 = "37:42": FR2 = "49:54": FR3 = "43:48"
If ToggleButton2.Value Then
Rows(FR1).Hidden = True
Rows(FR2).Hidden = True
Rows(FR3).Hidden = False
End If
If Not ToggleButton2.Value Then
Rows(FR3).Hidden = True
Rows(FR1).Hidden = False
Rows(FR2).Hidden = True
End If
End Sub
 
- 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

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
162
Réponses
7
Affichages
163
  • Question Question
Microsoft 365 VBA OptionButton
Réponses
3
Affichages
410
Réponses
5
Affichages
236
Réponses
0
Affichages
566
Retour