Masquer/afficher lignes variables
Résolu
Nai
Messages postés
714
Date d'inscription
Statut
Membre
Dernière intervention
-
Nai Messages postés 714 Date d'inscription Statut Membre Dernière intervention -
Nai Messages postés 714 Date d'inscription Statut Membre Dernière intervention -
Bonjour la communauté ! :)
Je cherche à masquer/afficher des lignes dont le numéro varie. En effet, de nouvelles lignes sont ajoutées chaque jour et le numéro de ligne à masquer change.
J'ai bien trouvé ceci : https://www.excel-downloads.com/threads/vba-masquer-des-lignes-variables.210111/
Mais je n'ai pas du comprendre comment la macro fonctionne. Lorsque je la met dans un module, son exécution déclenche le débogueur. J'ai évidemment modifié LDEB et LFIN en les termes qui m’intéressent (en l'occurrence "total_reel_ta1" et "total_reel_ta4").
Quelqu'un peut-il m'expliquer où est mon erreur ?
Voici le fichier : https://www.cjoint.com/c/GDopNsFqrQn
L'idée est de masquer les détails sous les totaux (Total, Garçons, Filles). J'adapterais pour la feuille Réel et Prévisionnel.
Merci d'avance pour votre aide !
Je cherche à masquer/afficher des lignes dont le numéro varie. En effet, de nouvelles lignes sont ajoutées chaque jour et le numéro de ligne à masquer change.
J'ai bien trouvé ceci : https://www.excel-downloads.com/threads/vba-masquer-des-lignes-variables.210111/
Sub MacroNantes() Dim ldebut As Integer Dim lfin As Integer ldebut = Range("LDEB") lfin = Range("LFIN") 'Affiche toutes les lignes Sheets("Véhicules").Select Rows("1:1000").Select Selection.EntireRow.Hidden = False 'Masque les lignes Rows(ldebut & ":" & lfin).Select Selection.EntireRow.Hidden = True Range("A1").Select End Sub
Mais je n'ai pas du comprendre comment la macro fonctionne. Lorsque je la met dans un module, son exécution déclenche le débogueur. J'ai évidemment modifié LDEB et LFIN en les termes qui m’intéressent (en l'occurrence "total_reel_ta1" et "total_reel_ta4").
Quelqu'un peut-il m'expliquer où est mon erreur ?
Voici le fichier : https://www.cjoint.com/c/GDopNsFqrQn
L'idée est de masquer les détails sous les totaux (Total, Garçons, Filles). J'adapterais pour la feuille Réel et Prévisionnel.
Merci d'avance pour votre aide !
A voir également:
- Masquer/afficher lignes variables
- Afficher appdata - Guide
- Masquer conversation whatsapp - Guide
- Comment masquer les amis sur facebook - Guide
- Comment appeler en masquer - Guide
- Afficher taille dossier windows - Guide
4 réponses
Bonjour
Je n'ai pas bien compris ce que tu veux faire, mais as tu pensé à l'outil "Grouper et créer un plan" pour masquer/afficher un groupe de lignes avec un simple clic
Cdlmnt
Je n'ai pas bien compris ce que tu veux faire, mais as tu pensé à l'outil "Grouper et créer un plan" pour masquer/afficher un groupe de lignes avec un simple clic
Cdlmnt
Une macro reste envisageable pour des lignes variables, il suffit de savoir comment les repérer.
Il faudrait que tu précises quelles sont les lignes à masquer, dans quelle(s) feuille(s) etc ....
Cdlmnt
Il faudrait que tu précises quelles sont les lignes à masquer, dans quelle(s) feuille(s) etc ....
Cdlmnt
Dans le fichier joint, les lignes à masquer/afficher sont dans la feuille Prévisionnel (et aussi Réel, mais j'adapterais la macro ;) )
Les lignes 24 à 27 (les détails de la ligne 23)
Les lignes 29 à 32 (détails de la ligne 28)
34 à 37 (détails de la ligne 33).
C'est une macro qui me servirait dans d'autres feuilles (tous les détails n'ont pas toujours besoin d'être affichés (comme la feuille Récap par exemple)) ^^
Merci pour l'aide ! :)
Les lignes 24 à 27 (les détails de la ligne 23)
Les lignes 29 à 32 (détails de la ligne 28)
34 à 37 (détails de la ligne 33).
C'est une macro qui me servirait dans d'autres feuilles (tous les détails n'ont pas toujours besoin d'être affichés (comme la feuille Récap par exemple)) ^^
Merci pour l'aide ! :)
A mettre dans un module général (Module 2 par exemple)
Tu peux leur affecter un raccourci clavier ou les affecter à un bouton.
http://www.cjoint.com/c/GDouwk5PdFs
Cdlmnt
Tu peux leur affecter un raccourci clavier ou les affecter à un bouton.
Public Sub Masquer() Dim obj As Object, liobj As Long With ActiveSheet Set obj = .Columns(cotot).Find("Total", , , xlWhole) If obj Is Nothing Then MsgBox "le mot Total n'est pas en colonne " & cotot: Exit Sub liobj = obj.Row Rows(liobj + 1 & ":" & liobj + 4).Hidden = True Rows(liobj + 6 & ":" & liobj + 9).Hidden = True Rows(liobj + 11 & ":" & liobj + 14).Hidden = True End With End Sub Public Sub Demasquer() Dim lifin As Long With ActiveSheet lifin = 1000 Rows(1 & ":" & lifin).Hidden = False End With End Sub
http://www.cjoint.com/c/GDouwk5PdFs
Cdlmnt
Bonjour,
ccm81, ta macro est très bien, mais elle ne tient pas en compte l'ajout de ligne!
Je me suis permis de la corriger :
ccm81, ta macro est très bien, mais elle ne tient pas en compte l'ajout de ligne!
Je me suis permis de la corriger :
Option Explicit Public Const cotot As String = "F" Public Sub Masquer() Dim obj As Object, liobjtotal, liobjgars, liobjfille As Long Dim DernLigne As Long DernLigne = Range("F65536").End(xlUp).Row With ActiveSheet Set obj = .Columns(cotot).Find("Total", , , xlWhole) If obj Is Nothing Then MsgBox "le mot Total n'est pas en colonne " & cotot: Exit Sub liobjtotal = obj.Row Set obj = .Columns(cotot).Find("Garçons", , , xlWhole) If obj Is Nothing Then MsgBox "le mot Garçons n'est pas en colonne " & cotot: Exit Sub liobjgars = obj.Row Set obj = .Columns(cotot).Find("Filles", , , xlWhole) If obj Is Nothing Then MsgBox "le mot Filles n'est pas en colonne " & cotot: Exit Sub liobjfille = obj.Row Rows(liobjtotal + 1 & ":" & liobjgars - 1).Hidden = True Rows(liobjgars + 1 & ":" & liobjfille - 1).Hidden = True Rows(liobjfille + 1 & ":" & DernLigne).Hidden = True End With End Sub Public Sub Demasquer() Dim lifin As Long With ActiveSheet lifin = 1000 Rows(1 & ":" & lifin).Hidden = False End With End Sub
Merci ccm ^^ Je n'avais pas vu le fichier joint :/ Ctrl D et M c'est top, mais ça ne marche pas quand j’intègre la macro au fichier.
Merci Le Pivert, c'est nickel, parfait !
Pouvez-vous m'expliquer, en gros, à quoi correspondent les lignes. Ex :
Ou
Aussi, puis-je intégrer cette macro à une feuille, et non un module ? Je n'ai pas encore bien compris la différence entre l'intégration dans un module ou une feuille.
Merci à vous !
Merci Le Pivert, c'est nickel, parfait !
Pouvez-vous m'expliquer, en gros, à quoi correspondent les lignes. Ex :
Set obj = .Columns(cotot).Find("Filles", , , xlWhole) 'Pourquoi tant de virgule ?
Ou
Rows(liobjtotal + 1 & ":" & liobjgars - 1).Hidden = True
Aussi, puis-je intégrer cette macro à une feuille, et non un module ? Je n'ai pas encore bien compris la différence entre l'intégration dans un module ou une feuille.
Merci à vous !
Visuellement, je n'aime pas trop, mais ça fait ce que je souhaite ^^
Je pensais à une macro qui ferait exactement cela, mais en ajoutant un bouton plus proche des données à afficher/masquer. Une petite loupe par exemple.
Je pensais à un bouton unique (qui affiche et masque). Je me souviens avoir utilisé cela mais pour des lignes fixes.