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
Partager