Option Explicit
Private Sub Worksheet_Activate()
Dim o As Worksheet
Range(Range("a2"), Range("a2").End(xlDown)).Value = ""
For Each o In Worksheets
If o.Name <> "Sommaire" And o.Visible = -1 Then Range("a" & Rows.Count).End(xlUp)(2) = o.Name
Next
End Sub