Générer plusieurs feuilles en fonction d'une liste

Bonjour,

J'aimerais savoir comment peut-on faire pour générer à partir d'une macro plusieurs feuilles qui seront au nombre de cellules comprises dans une liste et qui prendront le nom de chaque élément?

j'ai tenté quelque chose comme :

Sub Save_DOC()
Dim nom, c As Range
    Sheets(Array("TRAME", "CYCLES", "calendrier", "Affectations")).Copy
    ChDir "C:\Users\m.roblin\Desktop"
    With ActiveWorkbook
        .SaveAs Range("TRAME!B2").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    For Each c In Range("mois!A1:A12")
        nom = c.Value
        Sheets.Add Count:=1, after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = nom
    Next c
    End With
End Sub

Mais ca marche pas.

Mon idée était de créer une feuille par mois à partir de la trame créée.

Merci d'avance!

22testeur.xlsm (103.31 Ko)

Bonjour Grem974

Si tu veux copier tes feuilles "CYCLES", "calendrier", "Affectations" qui sont masquées, il faut déjà les AFFICHER

A+

Bonjour BrunoM45,

BrunoM45 a écrit :

Bonjour Grem974

Si tu veux copier tes feuilles "CYCLES", "calendrier", "Affectations" qui sont masquées, il faut déjà les AFFICHER

A+

J'ai réussi à copier les feuilles masquées sans problème et les maintenir comme tel grâce à ce code. C'est la génération des 12 feuilles qui ne fonctionne pas vraiment. J'avais posé la question sur un autre Forum pour avoir des avis différents et une personne m'a aidé en proposant quelque chose comme :

For i = 1 To 12
Sheets("TRAME").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = MonthName(i)
ActiveSheet.Range("B1").Range("A1") = DateSerial(Year(Date), i, 1)
ActiveSheet.Range("B1").Range("A1").NumberFormatLocal = "mmmm"
Next i

Ce qui marche plutôt bien j'essaie de faire de même pour des fichiers et quelque chose qui génère cette fois des nouveaux fichiers par service.

Rechercher des sujets similaires à "generer feuilles fonction liste"