Bonjour à toutes et à tous,

Le code suivant me permet à partir d'un double clic dans une cellule d'afficher une sélection de lignes.
Dans mon application lorsque je double-clique dans la cellule A12 de la feuille "L" et NumLig alors la feuille "FL" et NumLig est activée et le curseur se positionne dans la cellule C2. Les autres lignes à partir de la ligne sont cachées.
Si je double-clique sur la cellule A13 de la feuille "L" où il y "2", alors le curseur se positionne dans la cellule C43 de la feuille "FL" et les lignes 41 à 81 sont visibles, les autres sont cachées, et ainsi de suite.

Lorsque je double-clique, la feuille "FL" est bien activée, mais je n'arrive pas à cachée les lignes.

Pouvez-vous m'apporter votre aide s'il vous plait ? Je vous en remercie par avance.

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
 
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
 
If Not Intersect([A12:A39], Target) Is Nothing Then
 
    Dim FNew As Object, Wb As Workbook, NumLig As Variant
    Dim Cible As String
 
    NumLig = ActiveSheet.Range("D5")
    Cible = ("FL" & NumLig)
    Set Wb = ThisWorkbook
 
    'Ici on active la feuille "FL" et NumLig (n° de ligne)
 
    Set Sh = Wb.Sheets("FL" & NumLig)
    Sh.Activate
    Sheets("FL" & NumLig).Activate
 
    'on masque les feuilles qui ne correspondent pas à NumLig
 
    For Each Sh In Wb.Worksheets
        If Sh.name <> Cible And Sh.name <> ("FL" & NumLig) Then Sh.Visible = xlSheetVeryHidden
        Sheets("L" & NumLig).Visible = True
            If Sh.name = Cible Then
                Set FNew = Wb.Sheets(Cible): FNew.Activate: FNew.Visible = True
 
            Else: Exit Sub
            End If
            Next Sh
 
      'on affiche la fiche de la feuille "FL" correpondant au numéro de la cellule en A de la Feuille "L" et NumLig - Les autres fiches sont cachées
 
FNew.Cells((Target.Value - 1) * 41 + 2, 2).Select
            End If
            FNew.Rows("1:1185").Hidden = True
                FNew.Range(FNew.Cells((Target.Value - 1) * 41 + 2, 3), FNew.Cells((Target.Value - 1) * 41 + 1 + 38, 3)).EntireRow.Hidden = False
                FNew.Cells((Target.Value - 1) * 41 + 2, 3).Select
fin:
            Set FNew = Nothing: Set Wb = Nothing: Set Sh = Nothing
 
End Sub