OVH Cloud OVH Cloud

masquage/démasquage de lignes

10 réponses
Avatar
Jean13
Bonjour,
je souhaite masquer/démasquer des lignes contigües en cliquant sur un bouton
bascule ToggleButton.
J'ai crée 2 macros : une qui masque les lignes et une qui les démasque.
Dans le code du controle j'ai mis la fonction "click" et la macro qui masque,
puis j'ai mis la fonction "change" et le texte de la macro qui démasque.
Quand je clique sur le bouton, les 2 macros s'exécutent simultanément...
Comment faire pour faire stopper l'exécution sur l'un ou l'autre de mes
souhaits ?

Un peu dans le même ordre, est-il possible d'actionner la macro "masquer des
lignes" lorsqu'une donnée est saisie dans une case,
et inversement, d'actionner la macro "démasquer des lignes" si j'efface la
donnée de la case, donc qu'elle devient vide ?

Merci beaucoup et bonne journée
Jean

10 réponses

Avatar
Tatal
t
"Jean13" a écrit dans le message de news:

Bonjour,
je souhaite masquer/démasquer des lignes contigües en cliquant sur un
bouton
bascule ToggleButton.
J'ai crée 2 macros : une qui masque les lignes et une qui les démasque.
Dans le code du controle j'ai mis la fonction "click" et la macro qui
masque,
puis j'ai mis la fonction "change" et le texte de la macro qui démasque.
Quand je clique sur le bouton, les 2 macros s'exécutent simultanément...
Comment faire pour faire stopper l'exécution sur l'un ou l'autre de mes
souhaits ?

Un peu dans le même ordre, est-il possible d'actionner la macro "masquer
des
lignes" lorsqu'une donnée est saisie dans une case,
et inversement, d'actionner la macro "démasquer des lignes" si j'efface la
donnée de la case, donc qu'elle devient vide ?

Merci beaucoup et bonne journée
Jean


Avatar
JB
Bonjour,

Il faut tester si le bouton est enfoncé ou non.

Private Sub B_filtre_Click()
If B_filtre Then
Selection.AutoFilter Field:=3, Criteria1:="<>0", Operator:=xlAnd
B_filtre.Caption = "<>0"
Else
Selection.AutoFilter Field:=3
B_filtre.Caption = "Tous"
End If
End Sub

Cordialement JB


Bonjour,
je souhaite masquer/démasquer des lignes contigües en cliquant sur un bouton
bascule ToggleButton.
J'ai crée 2 macros : une qui masque les lignes et une qui les démasq ue.
Dans le code du controle j'ai mis la fonction "click" et la macro qui mas que,
puis j'ai mis la fonction "change" et le texte de la macro qui démasque.
Quand je clique sur le bouton, les 2 macros s'exécutent simultanément ...
Comment faire pour faire stopper l'exécution sur l'un ou l'autre de mes
souhaits ?

Un peu dans le même ordre, est-il possible d'actionner la macro "masque r des
lignes" lorsqu'une donnée est saisie dans une case,
et inversement, d'actionner la macro "démasquer des lignes" si j'efface la
donnée de la case, donc qu'elle devient vide ?

Merci beaucoup et bonne journée
Jean


Avatar
Jean13
Bonjour,
merci pour ta réponse rapide mais ça ne fonctionne pas. Je dois avoir une
erreur.
Voilà le code :

Private Sub B_filtre_Click()
If B_filtre Then
Selection.AutoFilter Field:=3, Criteria1:="<>0", Operator:=xlAnd
B_filtre.Caption = "<>0"
Else
Selection.AutoFilter Field:=3
B_filtre.Caption = "Tous"
End If
End Sub
Private Sub ToggleButton2_Change()
Rows("1:7").Select
Selection.EntireRow.Hidden = False
Range("E9").Select

End Sub

Private Sub ToggleButton2_Click()
Rows("1:6").Select
Selection.EntireRow.Hidden = True
Range("D9").Select

End Sub

Merci de ton aide
Jean
Avatar
Jean13
Bonjour,
merci pour ta réponse rapide, mais... je n'ai rien ! je n'ai que ça !


t
"Jean13" a écrit dans le message de news:

Bonjour,
je souhaite masquer/démasquer des lignes contigües en cliquant sur un
bouton
bascule ToggleButton.
J'ai crée 2 macros : une qui masque les lignes et une qui les démasque.
Dans le code du controle j'ai mis la fonction "click" et la macro qui
masque,
puis j'ai mis la fonction "change" et le texte de la macro qui démasque.
Quand je clique sur le bouton, les 2 macros s'exécutent simultanément...
Comment faire pour faire stopper l'exécution sur l'un ou l'autre de mes
souhaits ?

Un peu dans le même ordre, est-il possible d'actionner la macro "masquer
des
lignes" lorsqu'une donnée est saisie dans une case,
et inversement, d'actionner la macro "démasquer des lignes" si j'efface la
donnée de la case, donc qu'elle devient vide ?

Merci beaucoup et bonne journée
Jean







Avatar
Jacky
Bonjour,

Ceci Peut-être:
'---------
Private Sub ToggleButton1_Click()
Rows("1:6").Select
If Selection.EntireRow.Hidden = True Then
Selection.EntireRow.Hidden = False
Else
Selection.EntireRow.Hidden = True
End If
Range("D9").Select
End Sub
'---------
Salutations
JJ

"Jean13" a écrit dans le message de
news:
Bonjour,
je souhaite masquer/démasquer des lignes contigües en cliquant sur un
bouton

bascule ToggleButton.
J'ai crée 2 macros : une qui masque les lignes et une qui les démasque.
Dans le code du controle j'ai mis la fonction "click" et la macro qui
masque,

puis j'ai mis la fonction "change" et le texte de la macro qui démasque.
Quand je clique sur le bouton, les 2 macros s'exécutent simultanément...
Comment faire pour faire stopper l'exécution sur l'un ou l'autre de mes
souhaits ?

Un peu dans le même ordre, est-il possible d'actionner la macro "masquer
des

lignes" lorsqu'une donnée est saisie dans une case,
et inversement, d'actionner la macro "démasquer des lignes" si j'efface la
donnée de la case, donc qu'elle devient vide ?

Merci beaucoup et bonne journée
Jean


Avatar
Jean13
Ouaih !! bonne pioche !
Bonjour, et merci !

Concernant mon deuxième souhait, à savoir s'il est possible de faire cette
action si une valeur est saisie dans une cellule = masquage des lignes, et
démasquage si cette cellule devient vide, est-ce possible ?
Merci de ton aide !
Jean


Bonjour,

Ceci Peut-être:
'---------
Private Sub ToggleButton1_Click()
Rows("1:6").Select
If Selection.EntireRow.Hidden = True Then
Selection.EntireRow.Hidden = False
Else
Selection.EntireRow.Hidden = True
End If
Range("D9").Select
End Sub
'---------
Salutations
JJ

"Jean13" a écrit dans le message de
news:
Bonjour,
je souhaite masquer/démasquer des lignes contigües en cliquant sur un
bouton

bascule ToggleButton.
J'ai crée 2 macros : une qui masque les lignes et une qui les démasque.
Dans le code du controle j'ai mis la fonction "click" et la macro qui
masque,

puis j'ai mis la fonction "change" et le texte de la macro qui démasque.
Quand je clique sur le bouton, les 2 macros s'exécutent simultanément...
Comment faire pour faire stopper l'exécution sur l'un ou l'autre de mes
souhaits ?

Un peu dans le même ordre, est-il possible d'actionner la macro "masquer
des

lignes" lorsqu'une donnée est saisie dans une case,
et inversement, d'actionner la macro "démasquer des lignes" si j'efface la
donnée de la case, donc qu'elle devient vide ?

Merci beaucoup et bonne journée
Jean







Avatar
Jacky
Re..
A condition que la cellule en question ne soit pas dans la sélection des
lignes cachées et ne contient pas de formule.
Dans le module de la feuille en question la cellule D9 (A adapter):
'---------
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address <> "$D$9" Then Exit Sub
Rows("1:6").Select
If Target = "" Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Range("D9").Select
End Sub
'---------

"Jean13" a écrit dans le message de
news:
Ouaih !! bonne pioche !
Bonjour, et merci !

Concernant mon deuxième souhait, à savoir s'il est possible de faire cette
action si une valeur est saisie dans une cellule = masquage des lignes, et
démasquage si cette cellule devient vide, est-ce possible ?
Merci de ton aide !
Jean


Bonjour,

Ceci Peut-être:
'---------
Private Sub ToggleButton1_Click()
Rows("1:6").Select
If Selection.EntireRow.Hidden = True Then
Selection.EntireRow.Hidden = False
Else
Selection.EntireRow.Hidden = True
End If
Range("D9").Select
End Sub
'---------
Salutations
JJ

"Jean13" a écrit dans le message de
news:
Bonjour,
je souhaite masquer/démasquer des lignes contigües en cliquant sur un
bouton

bascule ToggleButton.
J'ai crée 2 macros : une qui masque les lignes et une qui les
démasque.



Dans le code du controle j'ai mis la fonction "click" et la macro qui
masque,

puis j'ai mis la fonction "change" et le texte de la macro qui
démasque.



Quand je clique sur le bouton, les 2 macros s'exécutent
simultanément...



Comment faire pour faire stopper l'exécution sur l'un ou l'autre de
mes



souhaits ?

Un peu dans le même ordre, est-il possible d'actionner la macro
"masquer



des
lignes" lorsqu'une donnée est saisie dans une case,
et inversement, d'actionner la macro "démasquer des lignes" si
j'efface la



donnée de la case, donc qu'elle devient vide ?

Merci beaucoup et bonne journée
Jean









Avatar
Jean13
ok, ça marche mais il a fallu que j'inverse True et False.
Donc, si je rentre une donnée dans la cellule, les lignes se masquent et si
je vide le contenu de la cellule, les lignes s'affichent, c'est bon.
Mais il y a un problème si j'avais masqué prédemment une partie des lignes
en question gràace à l'un des 2 boutons toggle : en effet, en supprimant le
contenu de la cellule, toutes les lignes apparaissent, même celles masquées
par le toggle, tu comprends ? ce serait bien de conserver, en vidant la
cellule, la configuration avant la saisie.
Merci
Avatar
Jacky
Re....
Alors il faut les adresses des lignes cachées par le bouton,
celles cachées par l'événement de la feuille,
et l'adresse de la cellule de saisie.
JJ

"Jean13" a écrit dans le message de
news:
ok, ça marche mais il a fallu que j'inverse True et False.
Donc, si je rentre une donnée dans la cellule, les lignes se masquent et
si

je vide le contenu de la cellule, les lignes s'affichent, c'est bon.
Mais il y a un problème si j'avais masqué prédemment une partie des lignes
en question gràace à l'un des 2 boutons toggle : en effet, en supprimant
le

contenu de la cellule, toutes les lignes apparaissent, même celles
masquées

par le toggle, tu comprends ? ce serait bien de conserver, en vidant la
cellule, la configuration avant la saisie.
Merci


Avatar
Jean13
Bonjour,

J'ai 3 boutons pour masquer/démasquer :
toggle1 lignes 1 à 6
toggle2 lignes 11 à 18
toggle3 lignes 19 à 26
cellule où une donnée est saisie, ce qui permet de masquer les lignes 11 à
33 = H34

Voilà le code complet :
Private Sub ToggleButton1_Click()
Rows("1:6").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Range("D9").Select
End Sub

Private Sub ToggleButton2_Click()
Rows("11:18").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Range("D9").Select
End Sub

Private Sub ToggleButton3_Click()
Rows("19:26").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Range("D9").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address <> "$H$34" Then Exit Sub
Rows("11:33").Select
If Target = "" Then
Selection.EntireRow.Hidden = False
Else
Selection.EntireRow.Hidden = True
End If
Range("D9").Select
End Sub

Merci de tes conseils et bon dimanche
Jean


Re....
Alors il faut les adresses des lignes cachées par le bouton,
celles cachées par l'événement de la feuille,
et l'adresse de la cellule de saisie.
JJ

"Jean13" a écrit dans le message de
news:
ok, ça marche mais il a fallu que j'inverse True et False.
Donc, si je rentre une donnée dans la cellule, les lignes se masquent et
si

je vide le contenu de la cellule, les lignes s'affichent, c'est bon.
Mais il y a un problème si j'avais masqué prédemment une partie des lignes
en question gràace à l'un des 2 boutons toggle : en effet, en supprimant
le

contenu de la cellule, toutes les lignes apparaissent, même celles
masquées

par le toggle, tu comprends ? ce serait bien de conserver, en vidant la
cellule, la configuration avant la saisie.
Merci