Microsoft 365 Listes des Onglets

FCMLE44

XLDnaute Impliqué
Supporter XLD
Bonjour

Je souhaite dans le fichier joint lister mes onglets présents sur ce fichier

Seulement je ne souhaite faire apparaitre les fichiers qui seront masqués et la feuille ou se trouve le récap

Plusieurs onglets pourront être masqués

J'utilise ce code que je mets dans la feuille Récap

VB:
Sub Snamelist()
Dim i As Integer

    Range("A1").Select

    For i = 1 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(1, 0).Select
    Next i

End Sub

Seulement toutes les feuilles apparaissent

Merci
 

Pièces jointes

  • Classeur1.xlsm
    29.6 KB · Affichages: 21
Solution
Bonjour FCMLE44, kiki29, Jacky67,

Voyez le fichier joint et cette macro affectée au bouton :
VB:
Sub Snamelist()
Dim a() As String, s As Object, n As Integer
ReDim a(1 To Sheets.Count, 1 To 1)
With Feuil8 'CodeName de la feuille Récap, à adapter
    For Each s In Sheets
        If s.Name <> .Name And s.Visible = -1 Then n = n + 1: a(n, 1) = s.Name
    Next
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[A2] '1ère cellule de restitution, à adaoter
        If n Then .Resize(n) = a
        .Offset(n).Resize(Rows.Count - n - .Row + 1).ClearContents 'RAZ en dessous
    End With
End With
End Sub
Feuil4 est masquée VeryHidden (s.Visible = 2) Feuil7 est masquée Hidden (s.Visible = 0).

A+

kiki29

XLDnaute Barbatruc
Salut, un conseil : toujours relire ce que l'on écrit ...
VB:
Option Explicit

Sub Tst()
Dim i As Long, j As Long
    Application.ScreenUpdating = False
    With Feuil8
        .Columns("A:A").Cells.Clear
        For i = 1 To Sheets.Count
            If Sheets(i).Visible Then
                j = j + 1
                .Cells(j, 1) = Sheets(i).Name
            End If
        Next i
    End With
    Application.ScreenUpdating = True
End Sub
 

kiki29

XLDnaute Barbatruc
Re,
VB:
Option Explicit

Sub Tst_02()
Dim Wsh As Worksheet, i As Long
    Application.ScreenUpdating = False
    With Feuil8
        .Range("A2:A" & .Rows.Count).Cells.Clear
        i = 1
        For Each Wsh In ThisWorkbook.Worksheets
            If Wsh.Visible And _
               Not (Wsh.Visible = xlSheetVeryHidden) And _
               Wsh.Name <> .Name Then
                i = i + 1
                .Cells(i, 1) = Wsh.Name
            End If
        Next Wsh
    End With
    Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour

Je souhaite dans le fichier joint lister mes onglets présents sur ce fichier

Seulement je ne souhaite faire apparaitre les fichiers qui seront masqués et la feuille ou se trouve le récap
Bonjour à tous
VB:
Sub Snamelist()
    Dim SH As Worksheet
    Application.ScreenUpdating = False
    Range("A2:a" & Rows.Count).Clear
    For Each SH In ThisWorkbook.Worksheets
        If SH.Name <> ActiveSheet.Name And SH.Visible Then
            Range("A" & Rows.Count).End(xlUp)(2) = SH.Name
        End If
    Next
End Sub
 

job75

XLDnaute Barbatruc
Bonjour FCMLE44, kiki29, Jacky67,

Voyez le fichier joint et cette macro affectée au bouton :
VB:
Sub Snamelist()
Dim a() As String, s As Object, n As Integer
ReDim a(1 To Sheets.Count, 1 To 1)
With Feuil8 'CodeName de la feuille Récap, à adapter
    For Each s In Sheets
        If s.Name <> .Name And s.Visible = -1 Then n = n + 1: a(n, 1) = s.Name
    Next
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[A2] '1ère cellule de restitution, à adaoter
        If n Then .Resize(n) = a
        .Offset(n).Resize(Rows.Count - n - .Row + 1).ClearContents 'RAZ en dessous
    End With
End With
End Sub
Feuil4 est masquée VeryHidden (s.Visible = 2) Feuil7 est masquée Hidden (s.Visible = 0).

A+
 

Pièces jointes

  • Classeur(1).xlsm
    33.2 KB · Affichages: 5

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley