Private Sub Worksheet_Activate()
Dim i&, ligmasque As Range, colmasque As Range
Application.ScreenUpdating = False
Cells.Delete 'RAZ
With Sheets("BDD") 'à adapter
.Visible = xlSheetVisible 'au cas où...
.Copy 'nouveau classeur
With ActiveSheet
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
.Rows.Hidden = False: .Columns.Hidden = False
.[A1].CurrentRegion.Copy
[A1].PasteSpecial xlPasteAll, Transpose:=True
Application.CutCopyMode = 0
.Parent.Close False
End With
[A1].Select
Columns(1).HorizontalAlignment = xlLeft
Columns(1).ColumnWidth = 35 'largeur modifiable
Rows.AutoFit 'ajustement hauteur
With .[A1].CurrentRegion
For i = 1 To .Columns.Count
If .Columns(i).Hidden Then Set ligmasque = Union(Rows(i), IIf(ligmasque Is Nothing, Rows(i), ligmasque))
Next
For i = 1 To .Rows.Count
If .Rows(i).Hidden Then Set colmasque = Union(Columns(i), IIf(colmasque Is Nothing, Columns(i), colmasque))
Next
End With
End With
If Not ligmasque Is Nothing Then ligmasque.EntireRow.Hidden = True
If Not colmasque Is Nothing Then colmasque.EntireColumn.Hidden = True
End Sub