Bonjour le forum, re sopichou
Comme demandé en MP, l'explication du code :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False 'Désactive le raffraichissement de l'écran (gain de temps
' et de lisibilité)
Cancel = True 'Evite le mode Edition de la cellule (la cellule ne se 'valide pas
If Target.Count = 1 Then ' S'il n'y a qu'une cellule de sélectionner
If Not Intersect(Range("A3:A" & [A65000].End(xlUp).Row), Target) Is Nothing Then ' Si le double 'clic a lieu entre la cellule A3 et la dernière cellule de 'la colonne A
Rows("3:" & [A65000].End(xlUp).Row).EntireRow.Hidden = True 'On masque toutes les lignes
Target.EntireRow.Hidden = False 'On démasque la ligne sélectionnée
Rows(Target.Row).SpecialCells(xlCellTypeBlanks).EntireColumn.Hidden = True
' Ici, au lieu de faire la boucle ci-dessous, tu peux remplacer
' les trois lignes par la ligne du dessus
' On masque toutes les colonnes dont les cellules de la ligne
' sont vides
'For Each cel In Range(Cells(Target.Row, [IV2].End(xlToLeft).Column), Cells(Target.Row, 2))
' If cel.Value = "" Then cel.EntireColumn.Hidden = True
'Next cel
End If
If Not Intersect(Range("A1"), Target) Is Nothing Then ' si double clic dans la cellule A1
Cells.EntireRow.Hidden = False 'On démasque toutes les lignes
Cells.EntireColumn.Hidden = False 'On démasque toutes les colonnes
derlig = IIf([A65000].End(xlUp).Row = 2, 3, [A65000].End(xlUp).Row) 'on cherche la dernière
'ligne remplie de la colonne A
' Si c'est ligne 2 alors, on détermine 3
Range("A3:AU" & derlig).ClearContents ' on vide tout (sauf les en-têtes)
With Sheets("Feuil7")
.Range("A2:AU" & .[A65000].End(xlUp).Row).Copy Range("A3") 'on copie les données de la
End With 'feuille 7 dans cette feuille
End If
End If
End Sub