Créer plusieurs feuilles en fonction d'une liste

  • Initiateur de la discussion Initiateur de la discussion Grem974
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Grem974

XLDnaute Nouveau
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 :

Code:
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 d'une trame dynamique existante.
Merci d'avance!
 
Re : Créer plusieurs feuilles en fonction d'une liste

Re


Essaies cette version
(PRE-REQUIS
1) j'ai mis en commentaire tout le code contenu dans la feuille TRAME
2) j'ai supprimé la liste de validation en B1)

Code:
Sub CopyFeuilles12BIS()
Dim i%
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
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
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Donc ensuite, il te faudra dé-commenter manuellement le code sur les douze feuilles 😉
(ou le faire par macro)
 
Re : Créer plusieurs feuilles en fonction d'une liste

Alors, je n'ai pas mis en commentaire le code de la Trame et la création des 12 mois est juste très rapide. Ca semble répondre à l'objectif initial! Tu es un maître!! merci beaucoup!!!

Je me demande juste ce qui a changé entre les codes?

Et comment est ce que je peux ajouter le code du genre :

Code:
Sheets(Array("TRAME", "CYCLES", "calendrier", "Affectations")).Copy
    ChDir "C:\Users\Jeremie\Desktop"
    With ActiveWorkbook
        .SaveAs Range("TRAME!B2").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    End With

De façon à ce que chaque service puisse générer un fichier?
 
Re : Créer plusieurs feuilles en fonction d'une liste

Re


On peut envisager (en attendant mieux) d'utiliser deux macros
1) tu lances la macro CopyFeuilles12Bis
puis ensuite
2 tu lances cette macro​
Code:
Sub EnregistrerCopies()
Dim serv
serv = Array("médecine_chimio", "DVO", "SSR")
Dim i As Byte, j%
For i = 0 To 2
    For j = 1 To 12
    With Sheets(MonthName(j))
        .Range("B2").Range("A1") = serv(i)
        .Range("A4").Range("A1") = "Services " & serv(i) & Format(DateSerial(Year(Date), j, 1), " mmmm yyyy")
    End With
    Next j
ActiveWorkbook.SaveAs "c:\temp\" & serv(i) & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Next i
End Sub
 
Re : Créer plusieurs feuilles en fonction d'une liste

Merci de ton aide. Je teste tout ca.
Moi j'ai essayé des trucs mais ca fait des gros bugs sur mon PC...

Je te dis ca demain, et te remercie grandement pour ton aide! Grace à toi mon stage fait un pas en avant après 3jours de blocage....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour