Comment masquer les lignes inutiles

konate.abdoul

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

  • Questions aux hopitaux.xlsm
    13.8 KB · Affichages: 81
  • Questions aux hopitaux.xlsm
    13.8 KB · Affichages: 76
  • Questions aux hopitaux.xlsm
    13.8 KB · Affichages: 76

mth

XLDnaute Barbatruc
Re : Comment masquer les lignes inutiles

Bonsoir le fil :)

En attendant le retour de job :), pour voir une zone nommée sur Excel 2007, sélectionner dans le ruban l'onglet "formules" puis cliquer sur "Gestionnaire de noms".
Les noms sont visibles dans la fenêtre qui apparaît, et pour voir à quoi ils se rapportent sélectionner un nom, dans la ligne tout en bas de cette fenêtre "fait référence à" s'affiche la formule.
Pour Processus_1 la formule est: =Indicateurs!$5:$15, que tu peux saisir ou afficher en sélectionnant les lignes 5 à 15 dans la feuille Indicateur.

Pour créer un nom, toujours dans le ruban, du peux également sélectionner dans l'onglet "Formules" le bouton "Définir un nom".
Dans la fenêtre qui apparaît, tu saisis le nom sur la première ligne, et la formule sur la ligne "fait référence à".
Attention, il ne doit pas y avoir d'espaces dans ce nom (ne pas oublier le _ devant le numéro du processus par exemple)

En espérant que cela pourra t'aider,

Bonne soirée,

mth
 

konate.abdoul

XLDnaute Nouveau
Re : Comment masquer les lignes inutiles

Bonsoir à tous,
Merci mth et job75. job75 soit indulgent stp je suis débutant.
mth, j'ai suivi toute ta procédure mais seul le bouton qui affiche tout fonctionne. Pour les autres il affiche le message "erreur 1004, la méthode range de l'objet global a échoué" et masque ensuite toute les lignes quelques soit le bouton.
please j'y suis presque.
NB:voici le code de job75 que j'ai copié et collé dans visual basic/insertion/module puis dans la fenêtre qui s'affiche.

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
 

job75

XLDnaute Barbatruc
Re : Comment masquer les lignes inutiles

Bonsoir konate.abdoul,

Dans le fichier que vous avez déposé et que j'ai utilisé, les boutons se nomment :

Organigramme : Processus 1
Organigramme : Processus 2
Organigramme : Processus 3
Organigramme : Processus 4
Organigramme : Processus 5
Organigramme : Processus 6
Organigramme : Processus 7


Il faut qu'il en soit de même pour tous les fichiers qui utilisent ma macro.

Le début 'Organigramme :' n'est bien sûr pas indispensable.

A+
 

job75

XLDnaute Barbatruc
Re : Comment masquer les lignes inutiles

Re,

Autre précision : les boutons doivent être des boutons 'Formulaires'.

Avec des boutons 'ActiveX' la macro ne peut pas fonctionner.

En effet Application.Caller ne s'applique qu'à des boutons 'Formulaires'.

A+
 

job75

XLDnaute Barbatruc
Re : Comment masquer les lignes inutiles

Bonjour,

Vous n'avez pas dû comprendre mon post #20 :rolleyes:

Sur votre dernier fichier les boutons se nomment :

Organigramme : Processus 15
Organigramme : Processus 16
Organigramme : Processus 17
Organigramme : Processus 18
Organigramme : Processus 19
Organigramme : Processus 20
Organigramme : Processus 21


Il faut que les noms des boutons et les noms des plages correspondent, donc :

- soit vous renommez les boutons* comme indiqué au post #20

- soit vous nommez les plages :

Processus_15
Processus_16
Processus_17
Processus_18
Processus_19
Processus_20
Processus_21


* Edit : pour modifier le nom d'un bouton, clic droit sur le bouton et modifier son nom en haut à gauche.

Attention, là il faut un espace entre 'Processus' et le numéro.

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 756
Messages
2 091 737
Membres
105 060
dernier inscrit
DEDJAN Gaston