Enregistrer une macro enregistrer sous pdf avec la date et l'heure


#1

Bonjour à tous,

Je souhaite créer un document excel avec un bouton, une macro laquelle enregistrerait le document sous le format PDF dans un répertoire “mes documents/modifications de service”

Je souhaiterais que le nom du fichier (afin qu’il soit classé par date) soit automatiquement enregistré sous la forme année_mois_jour_heure_minutes_modification de service.PDF en cliquant sur le bouton enregistrer.

l’année, le mois, le jour et l’heure correspondant à la date où j’enregistre le document.

Qu’elqu’un peut-il m’aider à créer cette macro?
Merci d’avance

Raphaël


#2

Bonjour,

Voici une macro à mettre dans un module de votre classeur EXCEL
Il faudra bien veiller à modifier le chemin d’enregistrement (REP)

Sub Enreg_Pdf()
Dim LaDate$, Nom$, Rep$  'Déclaration des variables
LaDate = Format(Now, "yyyy_mm_dd_") & Format(Time, "hh_mm_") 'formatage de la date et heure
Nom = "modification de service"  'Nom de l'onglet à entregistrer
Rep = "C:\Users\mes documents/modifications de service\"   ' Chemin du répertoire à adapter depuis votre PC
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    Rep & LaDate & "_" & Nom & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False  'enregistrement du fichier en PDF
End Sub

#3

Bonsoir Mimimathy,

D’abord merci pour avoir répondu à mon post si rapidement.
Malheureusement, je dois mal m’y prendre car cela ne fonctionne pas.

j’ai bien préciser le chemin d’accès (un serveur pro) : “http://dzs.fr/AgencePDL/default.aspx?RootFolder=%2FAgencePDL%2FDocuments%20partages%2FEncadrement%2FMODIFICATIONS%20DE%20SERVICE&FolderCTID=0x0120007DDE0C93E20E444B94470B756886FE51&View={C9309C9E-CB6D-47D5-BD09-290276CA0888}

Mais cela ne fonctionne pas.
En cliquant sur le bouton pour enregistrer le fichier, je reçois ce message d’erreur : erreur d’exécution ‘5’, argument ou appel de procédure incorrect :frowning:


#4

Salut Mimimathy,

je suis fort interessé par votre macro mais je ne parviens pas à la faire fonctionner. je vous joins une copie du fichier. Il s’agit de la gestion des stupéfiants de mon bloc opératoire.

Pour résumer, je voudrais que le fichier soit formatté en “yyyy.dd.mm_STUPS.nom de l’intervenant.PDF”.
Et s’enregistrer dans le dossier “P:\DAR\Anestbo\Pharmacie (NEW)\Gestion des stupéfiants\Archive”

A chaque fois que je lance la macro une erreur se produit etle debogeur demarre mais comme je pige pas grand chose au VBA…la macro en question s’appelle signaturePDF

Par ailleurs, et ce que cette macro enregistre toutesles pges du fichier excel, ou juste l’une d’entre elles ?

Je vous remercie d’avance,
Cédrick Marechal

STUPSV41.xlsm (189,6 Ko)


#5

Bonjour Phobos,

Teste avec ceci
et vérifie bien que le répertoire est identique à ceci
"P:\DAR\Anestbo\Pharmacie (NEW)\Gestion des stupefiants\Archive\"
car tu as deux espaces après Pharmacie et avant (NEW)
Au mieux, il est préférable de faire un copier/coller depuis l’explorateur

Sub SignaturePDF()
'
' SignaturePDF Macro
'

'

Dim LaDate$, Nom$, Rep$  'DŽclaration des variables
LaDate = Format(Now, "yyyy_mm_dd_")
Nom = "STUPS"  'Nom de l'onglet ˆ entregistrer
Rep = "P:\DAR\Anestbo\Pharmacie (NEW)\Gestion des stupefiants\Archive\"   ' Chemin du rŽpertoire ˆ adapter depuis votre PC"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    Rep & LaDate & "_" & Nom & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False  'enregistrement du fichier en PDF
End Sub

#6

Merci Mimimathy,
Comment transformer ton code pour que le fichier soit enregistré non plus en pdf mais au format excel, mais non modifiable, un peu s’il fallait protéger l’intégralité de la feuille nouvellement génerée lors de la signature, devenant ainsi lecture seule ?

Cédrick


#7

Re,

Faut développer un peu plus,
Tu parles de Fichier, sur Excel on parle de Classeur qui contient des feuilles (ou Onglet)
Donc des précisions sur la demande est nécessaire :wink:

Et il aurait été préférable de créer votre propre post avec en référence le post présent :thinking: