VBA - Enregistrer sous la date de lundi prochain et du lundi en 8

Bonjour j'aimerai pouvoir enregistrer mon fichier avec un nom de fichier et la date de lundi prochain et pouvoir le faire aussi pour le lundi suivant (donc deux semaines après), le tout avec une sub que j'affecterai à un bouton

Ce que je sais faire :

- Trouver lundi prochain

Function jourprochain(x As Date, Optional typejour As Byte = vbMonday) As Date
lundiprochain = x + 8 - Weekday(x, typejour)
End Function

- Enregistrer sous :

Sub Enregistrement()
Dim Path As String, valeur As String, 

Path = ActiveWorkbook.Path & "\"
valeur = "planning du " & ".xlsm"
ThisWorkbook.SaveAs Path & valeur
End Sub

Ce que je ne sais pas faire :

- le lien entre les deux

J'ai tenté :

Sub Enregistrement()
Dim Path As String, valeur As String, 

Path = ActiveWorkbook.Path & "\"
valeur = "planning du " & lundiprochain & ".xlsm"
ThisWorkbook.SaveAs Path & valeur
End Sub[

mais cela ne fonctionne pas.

Merci de votre aide

Bonjour,

Un essai ...

Option Explicit
Dim PremierLundi As Date
Dim DeuxiemeLundi As Date

Sub Enregistrement()
Dim Path As String, valeur As String

   Jourprochain Now

   Path = ActiveWorkbook.Path & "\"
   valeur = "planning du " & PremierLundi & ".xlsm"
   ThisWorkbook.SaveAs Path & valeur

   valeur = "planning du " & DeuxiemeLundi & ".xlsm"
   ThisWorkbook.SaveAs Path & valeur

End Sub

Function Jourprochain(x As Date, Optional typejour As Byte = vbMonday) As Date
Dim LundiProchain As Date

   LundiProchain = x + 8 - Weekday(x, typejour)

   PremierLundi = Format(LundiProchain, "yyyy-mm-dd")
   DeuxiemeLundi = Format(LundiProchain + 7, "yyyy-mm-dd")
End Function

ric

Bonjour et Merci Ric,

j'ai essayé ta solution qui me renvoie une erreur 1004 défini par l'application ou l'objet au moment de l'enregistrement à la ligne :

ThisWorkbook.SaveAs Path & valeur

Merci encore et je reste bien sur à l'écoute de solutions.

Bonjour,

J'ai testé avant de te soumettre ce code ... et, ici, ça fonctionne bien.

Place le curseur dans la macro "Enregistrement" et utilise la touche F8 pour avancer en pas à pas.

À mesure de l'avancement, en survolant les variables avec le curseur de souris, le contenu va s'afficher dans des infobulles.

Ainsi, tu devrais être en mesure de voir qu'est-ce qui accroche .. Est-ce Path ou valeur ... ou autre chose ?

ric

Bonjour,

Peut-être à cause de la version Excel 2010.

Un site qui explique bien le "SaveAs" pour différentes versions d'Excel.

https://www.rondebruin.nl/win/s5/win001.htm

ric

Bonsoir,

j'ai essayé avec différents

, FileFormat:= ici quelques chose (51, 52...)

mais cela ne fonctionne pas.

En survolant par F8, cela semble fonctionner.

Je n'arrive pas à comprendre

Merci encore en tout cas

Bonjour,

Je ne sais pas trop quoi dire, car ... je viens d'exécuter la macro avec le fichier qui m'a servi précédemment aux tests ... sur une version 2007 d'Excel ... la macro fonctionne bien ... tant en version 2007 que 2016.

N'y aurait-il pas une autre macro qui interfère ? Genre dans ThisWorkbook ?

Teste la macro avec un nouveau fichier tout frais ...

Ric

Rechercher des sujets similaires à "vba enregistrer date lundi prochain"