Récupération de nom de feuilles à insérer dans cellule d'une autre

Bonjour à tous,

dans mon fichier input.xlsm, j'aimerai remplir dans la première cellule vide de la ligne 1 de la 2e feuille "ALL" , le nom de chaque feuille après la 2e et cela pour chaque nouvelle cellule vide.

Dans cet exemple on aurait "X1 = EV", "Y1= TRANS","Z1=...". Voir Fichier Output.xlsm

Sachant que je peux avoir potentiellement + de 100 feuilles.

Merci pour votre contribution

1input.xlsm (45.80 Ko)
2output.xlsm (45.88 Ko)

Bonjour El Blobo, le forum,

Un essai : En ajoutant une donnée dans la ligne 1 de la colonne suivante du tableau, le tableau s'agrandit automatiquement.

Donc, ceci devrait fonctionner.

Sub AjoutDesNomsDeFeuilles()
    Dim NoF As Integer

    For NoF = 3 To Sheets.Count
        Worksheets("All").Cells(1, [table1].Columns.Count + 2).Value = Worksheets(NoF).Name
    Next NoF
End Sub

Bastr

Merci Bastr

Bonjour El Blobo, le forum,

Une nouvelle version du code qui vérifie si le nom des nouvelles feuilles existe déjà dans le tableau de la feuille "ALL".

Sub AjoutDesNomsDeFeuilles()
    Dim NoF As Integer
    Dim LesEntetes, LaCol

    ' dimensionner la variable tableau
    ReDim LesEntetes(1 To [Table1].Columns.Count)

    'mémoriser les entêtes du tableau de la feuille "ALL" (Table1)
    For LaCol = 1 To [Table1].Columns.Count
        LesEntetes(LaCol) = [Table1].Cells(0, LaCol)
    Next LaCol

    ' boucler sur chaque feuille du classeur à droite de la feuille "ALL"
    For NoF = 3 To Sheets.Count

        ' boucler sur LesEntetes
        For LaCol = LBound(LesEntetes) To UBound(LesEntetes)

            ' si le nom de la feuille existe déjà dans LesEntetes, sortir de la boucle
            If LesEntetes(LaCol) = Worksheets(NoF).Name Then
                Exit For

            ' Sinon ajouter une colonne au tableau "Table1" de la "ALL" dont l'entête sera le nom de la nouvelle feuille trouvée
            ElseIf LaCol = UBound(LesEntetes) And LesEntetes(LaCol) <> Worksheets(NoF).Name Then
                Worksheets("All").Cells(1, [Table1].Columns.Count + 2).Value = Worksheets(NoF).Name
            End If
        Next LaCol
    Next NoF
End Sub

En message privé, tu m'as demandé aussi une rechercheV.

Désolé, je ne comprends pas bien cette demande.

Bastr

Merci Bastr

et j'ai résolu mon problème de recherchev

Rechercher des sujets similaires à "recuperation nom feuilles inserer"