Macro afficher/masquer lignes avec bouton

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
 

st007

XLDnaute Barbatruc
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
 

vgendron

XLDnaute Barbatruc
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
 

FranckS

XLDnaute Nouveau
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
 

FranckS

XLDnaute Nouveau
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
 

st007

XLDnaute Barbatruc
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)
 

FranckS

XLDnaute Nouveau
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
 

FranckS

XLDnaute Nouveau
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
 

Discussions similaires

Réponses
3
Affichages
190
Réponses
2
Affichages
398

Statistiques des forums

Discussions
311 711
Messages
2 081 782
Membres
101 817
dernier inscrit
carvajal