XL 2016 Sommaire dynamique avec onglet masqué

RH_FFF

XLDnaute Nouveau
Bonjour à tous,

j'ai inséré cette macro qui fonctionne bien pour créer un sommaire dynamique:
Private Sub Worksheet_Activate()
[A6:A100].ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 6, 1), Address:="", SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
Next i
[A6:A100].Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlGuess
End Sub

Cependant, dans mon classeur, j'ai un onglet (feuil2) qui est masqué et que je ne souhaite pas faire apparaître dans le sommaire.
Auriez-vous une piste de réflexion?
En vous remerciant les experts.
 

frangy

XLDnaute Occasionnel
Bonjour,

VB:
Private Sub Worksheet_Activate()
Dim i As Integer
Dim Nf As String
    [A6:A100].ClearContents
    For i = 2 To Sheets.Count
        If Sheets(i).Name <> "Feuil2" Then
            Nf = Sheets(i).Name
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 6, 1), Address:="", SubAddress:="'" & _
            Nf & "'" & "!A1", TextToDisplay:=Nf
        End If
    Next i
    [A6:A100].Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlGuess
End Sub
Cordialement.
 

Efgé

XLDnaute Barbatruc
Bonjour à tous
Sans connaitre le(s) nom(s) de la / des feuille(s) masquée(s)
VB:
Private Sub Worksheet_Activate()
Dim i As Integer
Dim Nf As String
    [A6:A100].ClearContents
    For i = 2 To Sheets.Count
        If Sheets(i).Visible = True Then
            Nf = Sheets(i).Name
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 6, 1), Address:="", SubAddress:="'" & _
            Nf & "'" & "!A1", TextToDisplay:=Nf
        End If
    Next i
    [A6:A100].Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlGuess
End Sub
Cordialement
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Si Black is Black alors True is True
Subséquemment, on peut se contenter d'écrire
VB:
Private Sub Worksheet_Activate()
Dim i As Integer
Dim Nf As String
    [A6:A100].ClearContents
    For i = 2 To Sheets.Count
        If Sheets(i).Visible Then
            Nf = Sheets(i).Name
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 6, 1), Address:="", SubAddress:="'" & _
            Nf & "'" & "!A1", TextToDisplay:=Nf
        End If
    Next i
    [A6:A100].Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlGuess
End Sub
Ca ne change pas grand chose
Mais cela me permet de passer ici pour saluer Efgé ;)
 

Efgé

XLDnaute Barbatruc
Bonjour à tous, Salut JM :)
True is true, I agree
Profitons en pour nous mettre à l'abris du célèbre utilisateur qui modifie l'ordre des onglets ;)

Code:
Private Sub Worksheet_Activate()
Dim i As Integer
Dim Nf As String
Dim Sh As Worksheet
i = 7
    [A6:A100].ClearContents
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Visible And Sh.Name <> Me.Name Then
            Nf = Sh.Name
            i = i + 1
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:="", SubAddress:="'" & _
            Nf & "'" & "!A1", TextToDisplay:=Nf
        End If
    Next Sh
    [A6:A100].Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlGuess
End Sub
Cordialement
 

Statistiques des forums

Discussions
312 298
Messages
2 086 981
Membres
103 419
dernier inscrit
mk29