Bonjour,

Je me tourne vers le forum après de multiples recherches infructueuses et un niveau VBA de novice.


Je cherche à créer une macro afin de faire apparaitre/disparaitre une série de cellule selon un critère:

Dans le fichier joint, la feuille 1 nommée "SETUP" donne une série de tâches. Sur cette feuille, l'utilisateur est en capacité de spécifier si la tâche est applicable ou non (Colonne G). Si la tâche est applicable alors le nom de la catégorie (Ex: "Human Ressources") s'affiche en colonne B de la Feuille 2 pour la tâche correspondante, si la tâche est non applicable, "N/A" s'affiche au même endroit.

Je souhaite, grâce au bouton ( positionné colonne F, feuille 2), afficher ou masquer (bouton en vas-et-viens) les tâches correspondantes à une sous catégorie, mais seulement celles qui ont été définies comme "applicables".

J'ai du coup besoin d'une macro qui viendrais chercher dans la colonne E de la feuille 2 le mot "Human RessourcesTaskStaff Hiring" et qui afficherait les lignes correspondantes.

Je souhaite aussi que le fichier sois en capacité de me faire disparaitre ces mêmes lignes lorsque je reclique sur le bouton.

TEST EXCEL 2.xlsm

Voici le code que je suis arriver à confectionner mais qui ne fonctionne pas:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub DUPSTAFFHIRING()
'
' DUPSTAFFHIRING Macro
'
Dim PlageSource As Range, PlageCible As Range, R As Range
 
Dim L As Long
 
    'On cible toutes les cellules contenant une expression (constante) en colonne "B"
 
    Set PlageSource = Sheets("DEPARTMENTAL TASK LISTS").Columns(5).SpecialCells(xlCellTypeConstants, 2)
 
    'Pour chaque cellule visée
 
    For Each R In PlageSource
 
        'Contient-elle l'expression recherchée ?
 
        If R.Value Like "Human RessourcesTaskStaff Hiring" Then
 
            'Si oui, on stocke sa référence dans un objet range "PlageCible"
 
            If PlageCible Is Nothing Then
 
                Set PlageCible = R
 
            Else
 
                Set PlageCible = Union(PlageCible, R)
 
            End If
 
        End If
 
    Next R
 
 
    If Not PlageCible Is Nothing Then
 
        PlageCible.EntireRow.Hidden = True
 
 
    End If
 
End Sub
Je vous remercie mille fois pour votre aide ;