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

Y compris Power BI, Power Query et toute autre question en lien avec Excel
m
morinn
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 16 décembre 2014
Version d'Excel : 2010

Message par morinn » 26 août 2018, 19:19

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
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'896
Appréciations reçues : 159
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 26 août 2018, 19:36

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
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
m
morinn
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 16 décembre 2014
Version d'Excel : 2010

Message par morinn » 26 août 2018, 20:11

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.
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'896
Appréciations reçues : 159
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 26 août 2018, 20:57

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
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'896
Appréciations reçues : 159
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 26 août 2018, 21:05

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
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
m
morinn
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 16 décembre 2014
Version d'Excel : 2010

Message par morinn » 26 août 2018, 22:11

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
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'896
Appréciations reçues : 159
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 26 août 2018, 22:26

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. :bof:

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

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



Ric
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message