Bonjour,
J'ai un classeur Excel qui contient une feuille par jour (planning de livraison). Pour éviter de faire des copier/coller manuellement, j’essaie de faire une macro.
En écumant les forums, j'ai récupérer des bouts de code et j'arrive tant bien que mal à créer une copie de ma feuille sur une année complète sans les week end en les renommant avec une date.
Je me rend bien compte que ce n'est pas très pratique à ce jour, mon fichier sera bon qu'a partir du 1 janvier car je pourrai repartir sur un classeur totalement vierge.
J'ai aussi à l'esprit que plus de 250 feuilles sur un classeur cela ne doit pas être bien terrible, bien que celle ci ne soit pas chargées de formule, c'est essentiellement de la saisie.
J'aurais souhaité récupérer la date du dernier onglet du classeur en variable comme point départ, par exemple si la dernière feuille se nomme 3105 , il faudrait que la copie suivante soit 0106 et ainsi de suite.
Voila le bout de code que j'utilise :
J'espere avoir été clair, mais il est possible que je fasse mauvaise route.
Bien à vous
Merci
J'ai un classeur Excel qui contient une feuille par jour (planning de livraison). Pour éviter de faire des copier/coller manuellement, j’essaie de faire une macro.
En écumant les forums, j'ai récupérer des bouts de code et j'arrive tant bien que mal à créer une copie de ma feuille sur une année complète sans les week end en les renommant avec une date.
Je me rend bien compte que ce n'est pas très pratique à ce jour, mon fichier sera bon qu'a partir du 1 janvier car je pourrai repartir sur un classeur totalement vierge.
J'ai aussi à l'esprit que plus de 250 feuilles sur un classeur cela ne doit pas être bien terrible, bien que celle ci ne soit pas chargées de formule, c'est essentiellement de la saisie.
J'aurais souhaité récupérer la date du dernier onglet du classeur en variable comme point départ, par exemple si la dernière feuille se nomme 3105 , il faudrait que la copie suivante soit 0106 et ainsi de suite.
Voila le bout de code que j'utilise :
VB:
Sub test()
Dim x, i
'Le nom des feuilles seront incrementé apres le 1 janvier
'x = DateSerial(Year(Date), 1, 1)
'les noms des feuilles seront incrementées apres la date du jour actuel
x = Now()
For i = 1 To 5 '365
Select Case Weekday(CDate(x + i), vbMonday)
Case 1 To 5
With ActiveWorkbook.ActiveSheet
.Copy After:=Worksheets(Worksheets.Count)
End With
ActiveSheet.Name = Format(CDate(x + i), "ddmm")
End Select
Next i
End Sub
J'espere avoir été clair, mais il est possible que je fasse mauvaise route.
Bien à vous
Merci