Recopie d'1 onglet en plusieurs

Bonjour à tous.

Me revoilà , j'ai de nouveau besoin de votre aide

J'aimerais recopier l'onglet " original " en " 12 onglets " qui auront

pour nom les 12 mois de l'année scolaire.

en commençant par septembre et finissant en août de l'année suivante, si cela est possible.

J'ai trouvé sur le forum une formule pour recopier; mais cela ne me recopie qu'une seul fois.

Je vous laisse un fichier joint.

Merci d'avance.

Bonjour.

S'il n'est pas possible de recopier avec les 12 mois et année, peut-être recopier seulement 12 onglet avec le nom des mois ou plus simplement 12 onglets avec les chiffres "1 2 3 4 5 6 7 8 9 10 11 et 12.

Merci d'avance et bonne soirée à tous.

Bonsoir. A tester boucle For i=1 to 12

Excellent, super merci bcq et bonne soirée à tous.

Bonjour.

A l'attention de :

Message par Xmenpl » Hier, 16:29

Bonsoir. A tester boucle For i=1 to 12.

et au autre également bien sur.

Question supplémentaire.

Avec la formule fournie hier par Xmenpl, est possible de recopier ces 12 onglets dans un autre classeur que l'on appellerait:

"année scolaire 2020-2021"?

"Sub Renommer_l_onglet_en_date_mois_suivant()

For i = 1 To 10 ' 1 à 12 = le nombre d'onglet à insérer

ActiveSheet.Copy Before:=Worksheets(ActiveSheet.Name)

Mois = Format(DateAdd("M", i - 1, ("01/09/2020")), "MMMM")

Nomonglet = Mois & " " & Year(Now)

ActiveSheet.Name = Nomonglet

Next i

end sub

Encore une fois merci de votre aide et bonne journée à tous.

Sncf c'est possible lol

Sub Renommer_l_onglet_en_date_mois_suivant()

Dim Chemin As String
Dim Nomfichier As String
Chemin = ThisWorkbook.Path & "\"
Nomfichier = "Année scolaire " & Year(Now) & "-" & Year(Now) + 1 & ".xlsm"

For i = 1 To 12
ActiveSheet.Copy before:=Worksheets(ActiveSheet.Name)
Mois = Format(DateAdd("M", i - 1, ("01/09/2020")), "MMMM")
Nomonglet = Mois & "-" & Year(Now)
ActiveSheet.Name = Nomonglet
Next i

Application.DisplayAlerts = False
Worksheets("original").Delete
Application.DisplayAlerts = True

ActiveWorkbook.SaveAs Filename:= _
        Chemin & Nomfichier, FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

Ce code permet d'enregistrer le fichier en cours sous un autre nom ; ainsi l'original n'est pas affecté.

Nota : Tu as un code dans l'évenement de la feuille "Original" il faudra le virer sinon en fin de macro

on ne peut pas supprimer cet onglet dans le nouveau fichier.

Ok , je vais essayer cela tantôt, car pour l'instant boulot.

En tout cas un grand merci pour ton aide.

Bonne journée à toi.

Super;mais le problème, c'est que le " classeur " s'enregistre dans le même répertoire.

J'aimerais le mettre dans le chemin suivant : " D:\Disque E\Office\Circuit\".

Que dois-je changer?

Merci de prendre encore un peu de votre temps pour m'aider.

Bonne soirée à tous.

Super;mais le problème, c'est que le " classeur " s'enregistre dans le même répertoire.

J'aimerais le mettre dans le chemin suivant : " D:\Disque E\Office\Circuit\".

Que dois-je changer?

Merci de prendre encore un peu de votre temps pour m'aider.

Bonne soirée à tous.

Bonjour, il suffit de lui donner un autre "Chemin"

remplacer :

Chemin = ThisWorkbook.Path & "\"

par :

Chemin="D:\Disque E\Office\Circuit\"

Bonjour et encore 1 x merci.

J'avais essayé cette façon; mais j'ai dû faire une erreur car cela ne fonctionnai pas.

Bon weekend

Bonjour et encore 1 x merci.

J'avais essayé cette façon; mais j'ai dû faire une erreur car cela ne fonctionnai pas.

Bon weekend

Il faut bien vérifier qu'il n'y a pas un espace de trop comme quand tu l'as posté dans ton message :

" D:\Disque E\Office\Circuit\" il y a un espace avant le D qui ne doit pas exister.

A vérifier aussi l'écriture du répertoire "Disque E" ou si c'est juste l'affichage dans l'explorateur ?

l'adresse réelle est peut-être simplement :

"D:\Office\Circuit\" ?

Ok oui tu as raison, après vérification il y a un espace dans mon code et pas dans le répertoire.

J'ai aussi un peu modifier pour obtenir

les 4 mois de 2020 et les 6 mois de 2021

comme suit:

For i = 1 To 4

ActiveSheet.Copy before:=Worksheets(ActiveSheet.Name)

Mois = Format(DateAdd("M", i - 1, ("01/09/2020")), "MMMM")

Nomonglet = Mois & "-" & Year(Now)

ActiveSheet.Name = Nomonglet

Next i

For i = 1 To 6

ActiveSheet.Copy before:=Worksheets(ActiveSheet.Name)

Mois = Format(DateAdd("M", i - 1, ("01/01/2021")), "MMMM")

Nomonglet = Mois & "-" & Year(Now) + 1

ActiveSheet.Name = Nomonglet

Next i

et cela fonctionne super bien.

Encore super merci pour tous.

Oui. C'est bien mieux de l'adapter toi même à "ta sauce" cela te permet de comprendre le Code.

Me revoilà.

Oui une dernière pte chose.

Ici une fois que la macro est terminée, le fichier original se ferme; mais si je veux que le fichier original reste ouvert, je dois changer quoi dans le code.

Dsl j'ai oublié de demander avant.

Ce n'est pas tout à fait la traduction de la macro. Quand la macro se termine le fichier ouvert s'enregistre

sur D:\ sous forme de copie et reste ouvert.

Du coup c'est comme si l'original n'avait jamais été ouvert.

Dans ce cas à la fin de la macro. il faut une ligne pour réouvrir l'original.

ainsi les deux fichiers resterons ouverts.

Workbooks.Open "C:\user\desktop\recopie de l'onglet.xlsm"

End Sub

Biensur le chemin il faut indiquer le votre pas celui de l'exmple

Rechercher des sujets similaires à "recopie onglet"