Comment masquer les lignes inutiles

  • Initiateur de la discussion Initiateur de la discussion konate.abdoul
  • 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 !

K

konate.abdoul

Guest
j'ai une colonne dans laquelle est listée une série de questions classées par catégorie. Pour le remplissage, je voudrais que celui qui répond aux question sélectionne seulement la catégorie qui l'interresse à partir d'un bouton automatique situé à la première ligne.
Exemple: celui qui veut répondre aux questions sur les ressources humaines (ligne 52 à ligne 90), en cliquant sur le bouton ressources humaines à la première ligne, toutes les autres lignes c'est à dire les lignes 2 à 51 et les lignes 91 à 275 sont masquées automatiquement.
Merci de votre aide.
 

Pièces jointes

Re : Comment masquer les lignes inutiles

Bonsoir à tous,

Re konate.abdoul,

Pour répondre dans la continuité de ton fichier, voici les macros attachées aux boutons de commande.

Tu remarqueras que j'ai ajouté un 4ème bouton pour restaurer l'affichage complet de la feuille le cas échéant.

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

Re : Comment masquer les lignes inutiles

Bonjour et bienvenue sur le forum, salut les autres,

Grouper et créer un plan (menu Données) répond à la demande sans macro, voir la pièce jointe.

Un clic sur le "+" dans la marge de gauche ouvre la section, un clic sur le "-" la ferme.
 

Pièces jointes

Re : Comment masquer les lignes inutiles

Bonsoir chers tous et merci encore pour votre aide.

Grâce à vous je suis sur la bonne voie. Dans ce fichier que je vais joindre chaque bouton situé à la ligne 2 (colonne B à I) correspond a une catégorie. Après votre aide j'ai réussi a faire en sorte que quand je clique sur Exemple démographie la colonne affiche exactement les lignes concernées uniquement, donc cette étape marche. Mais le problème est que je suis obligé de cliqué à nouveau sur démographie pour afficher toutes les lignes avant de cliquer sur épidémiologie pour afficher uniquement les lignes qui lui correspondent sinon ça fonctionne pas.
Merci pour votre disponibilité
 

Pièces jointes

Re : Comment masquer les lignes inutiles

re 🙂

Oui, je voulais dire par là que dans la fenêtre visual basic il n'y a aucune macro, tu as dû les effacer en déposant ton fichier, du coup on ne sait pas quoi vérifier.

Bonne soirée,

mth
 
Re : Comment masquer les lignes inutiles

Bonjour konate.abdoul, le fil, le forum,

Une seule macro suffit pour les 7 boutons :

Code:
Sub AfficheProcessus()
On Error Resume Next
If InStr(Application.Caller, "Processus") = 0 Then Exit Sub
Dim Nom As Name, numero As Long, NomPlage As String
On Error GoTo 0
Application.ScreenUpdating = False
'---masquage de tous les Processus nommés---
For Each Nom In ThisWorkbook.Names
If InStr(Nom.Name, "Processus_") Then _
  Range(Nom.Name).EntireRow.Hidden = True
Next
'---affichage de la plage du bouton---
numero = Val(Split(Application.Caller, "Processus")(1))
NomPlage = "Processus_" & numero
Range(NomPlage).EntireRow.Hidden = False
End Sub
Les plages correspondant à chaque bouton sont nommées Processus_1 Processus_2 etc...

Nota : pour tester téléchargez d'abord le fichier sur le bureau...

Edit : je joins aussi la version (1bis) qui utilise la fonction Like à la place de InStr

A+
 

Pièces jointes

Dernière édition:
Re : Comment masquer les lignes inutiles

Re,

Un bouton supplémentaire pour afficher tout, et une légère modification :

Code:
Sub AfficheProcessus()
On Error Resume Next
If Not Application.Caller Like "*Processus*" Then _
  Rows.Hidden = False: Exit Sub
Dim Nom As Name, numero As Long, NomPlage As String
On Error GoTo 0
Application.ScreenUpdating = False
'---masquage de tous les Processus nommés---
For Each Nom In ThisWorkbook.Names
  If Nom.Name Like "*Processus_*" Then _
    Range(Nom.Name).EntireRow.Hidden = True
Next
'---affichage de la plage du bouton---
numero = Val(Split(Application.Caller, "Processus")(1))
NomPlage = "Processus_" & numero
Range(NomPlage).EntireRow.Hidden = False
End Sub
A+
 

Pièces jointes

Re : Comment masquer les lignes inutiles

bonjour job75, merci, ton dernier code est ce que je cherchais exactement. merci infiniment. Maintenant je veux insérer ce code dans mon classeur qui comporte déjà d'autre feuille. J'ai copié collé le code dans visual basic de mon classeur ça ne marche pas. j'ai essayé d'affecter à chaque bouton la macro afficheprocessus mais ça affiche erreur 1004. Que dois faire alors pour insérer ton code dans mon classeur pour que ça fonctionnent et sans que ça ne garde de lien avec le fichier que tu m'as envoyé.
Excuz pour le dérangement je suis un débutant.
 
Re : Comment masquer les lignes inutiles

Aussi quand j'insere directement ta feuille dans mon classeur, ça marche mais il garde un lien avec ton fichier de sorte que quand je supprime ton fichier ça marche plus. Merci
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
564
L
Réponses
4
Affichages
852
F
Réponses
72
Affichages
7 K
FloASF63
F
T
Réponses
11
Affichages
3 K
T
L
Réponses
9
Affichages
1 K
Retour