Afficher ou masquer des lignes
bonjour à tous
j'ai besoin de votre aide. Je voudrais pouvoir afficher ou masquer des lignes dans plusieurs feuilles, mais avec une "centralisation" de la commande sur une feuille principale.
depuis la feuille 1 j'aimerais pouvoir décider de l'affichage ou du masquage des mêmes lignes sur les feuilles 2, 3, 4. Attention à terme mon classeur comportera d'autres feuilles...
j'ai besoin de pouvoir masquer ou afficher séparément 100 lignes.
j'ai réussi à faire une macro pour une ligne... que je devrai taper 100 fois
merci d'avance pour votre aide.
dam
Bonjour Dam, bonjour le forum,
Un petit fichier exemple avec un ToggleButton et le code ci-dessous :
Private Sub ToggleButton1_Click()
Dim LD As Variant 'déclare la variable LD (Ligne de début)
Dim LF As Variant 'déclare la variable LF (Ligne de Fin)
Dim O As Worksheet 'déclare la variable LD (Ligne de début)
ActiveCell.Select 'enlève le focus au bouton
If Me.ToggleButton1.Caption = "Masquer" Then 'condition : si le texte du bouton est "Masquer"
'définit ligne de début LD via une boîte d entrée
LD = Application.InputBox("Quelle est le numéro de la première ligne à masquer ?", "MASQUER", Type:=2)
If LD = False Or LD = "" Then Exit Sub 'si [Annuler] ou non renseignée, sort de la procédure
'définit ligne de fin LF via une boîte d entrée
LF = Application.InputBox("Quelle est le numéro de la dernière ligne à masquer ?", "MASQUER", Type:=2)
If LF = False Or LF = "" Then Exit Sub 'si [Annuler] ou non renseignée, sort de la procédure
For Each O In Worksheets 'boucle sur tous les onglets O du classeur
O.Rows(LD & ":" & LF).Hidden = True 'masque les lignes de l'onglet O, de la ligne LD à la ligne LF
Next O 'prochain onglet de la boucle
Me.ToggleButton1.Caption = "Afficher" 'modifie le texte du bouton qui devient "Afficher"
Else 'sinon (si le texte du bouton est "Afficher")
For Each O In Worksheets 'boucle sur tous les onglets O du classeur
O.Rows.Hidden = False 'affiche toutes les lignes de l'onglet
Next O 'prochain onglet de la boucle
Me.ToggleButton1.Caption = "Masquer" 'modifie le texte du bouton qui devient "Masquer"
End If
End SubLe fichier :
Si tu dois toujours masquer des blocs de 100 lignes, utilise plutôt le code ci-dessous :
Private Sub ToggleButton1_Click()
Dim LD As Variant 'déclare la variable LD (Ligne de début)
Dim O As Worksheet 'déclare la variable LD (Ligne de début)
ActiveCell.Select 'enlève le focus au bouton
If Me.ToggleButton1.Caption = "Masquer" Then 'condition : si le texte du bouton est "Masquer"
'définit ligne de début LD via une boîte d entrée
LD = Application.InputBox("Quelle est le numéro de la première ligne à masquer ?", "MASQUER", Type:=2)
If LD = False Or LD = "" Then Exit Sub 'si [Annuler] ou non renseignée, sort de la procédure
'définit ligne de fin LF via une boîte d entrée
LF = LD + 99
For Each O In Worksheets 'boucle sur tous les onglets O du classeur
O.Rows(LD & ":" & LF).Hidden = True 'masque les lignes de l'onglet O, de la ligne LD à la ligne LF
Next O 'prochain onglet de la boucle
Me.ToggleButton1.Caption = "Afficher" 'modifie le texte du bouton qui devient "Afficher"
Else 'sinon (si le texte du bouton est "Afficher")
For Each O In Worksheets 'boucle sur tous les onglets O du classeur
O.Rows.Hidden = False 'affiche toutes les lignes de l'onglet
Next O 'prochain onglet de la boucle
Me.ToggleButton1.Caption = "Masquer" 'modifie le texte du bouton qui devient "Masquer"
End If
End SubBonjour ThauThème
merci bcp pour ton aide !
c'est sympa ce que tu as fait
mais ça ne répond qu'en partie à ce dont j'ai besoin
je voudrais avoir la possibilité de pouvoir masquer ou afficher des lignes pas forcément consécutives et surtout de pouvoir les masquer en plusieurs fois ou de pouvoir les afficher en plusieurs fois...
ces lignes correspondront à des index dans des tableaux que je ne remplirai que si nécessaire...
merci encore
dam
Re,
C'est sympa ce que tu dit Dam mais impossible de coder avec aussi peu d'indications... C'est quoi ces index ?
Excuse moi ThauThème
je n'ai pas utilisé le bon mot...
quand j'ai dit index c'était juste pour un entête de ligne de tableau...
je t'ai fait un classeur pour exemple.
merci à toi
Bonjour à tous,
ThauThème semble très occupé, y a t'il quelqu'un d'autre pour m'aider ?
merci d'avance
Bonsoir dam0920, le forum,
En attendant le code de ThauThème
Cordialement,
Bonjour XOr
et merci beaucoup, ça répond bien à mon attente
en quelques lignes... moi j'avais réussi en 230 lignes... oui oui j'ai encore du taf pour maîtriser vba !!!
belle journée