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

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

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
1 « J'aime »

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:

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)

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

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

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:

Bonsoir Mimimathy, désolé mais je ne sais pas comment creer un nouveau post en y integrant un post précedent, ce qui explique que je continue la suite ici, il y a dejà le fruit de ton aide.
Pour revenir à ce fichier classeur excel, avec lequel mes collègues se sont familiarisés, je souhaiterai apporter quelques modifications:
1- La macro Signature pdf que tu m’as aidé à réaliser enregistre le fichier au format pdf, est-il possible qu’il enregistre toutes les pages du fichier dans un pdf de plusieurs pages ? Sinon, peut-on demander à la macro de garder le format xlsx en sortie, mais dans ce cas le fichier de sorie serait totalement protege de toute modification (genre lecture seule).
2- Je voudrais faire, toujours dans cette même macro, une seconde operation, c’est à dire qu’en même temps qu’elle enregistre le fichier, elle en lance une impression, mais d’une page bien precise. Faut il creer une autre macro ? comment inserer une macro dans une macro ?
3- A l’usage, nous nous sommes rendus compte d’une coquille. Si, le même jour, nous ouvrons 2 classeurs que l’on signe toujours avec cette macro, sna s message d’avertissement le dernier clique sur le bouton signature ecrase le fichier pdf precedemment generé par la macro. Pour faire simple si je fais “enregistrer sous” (ce que fait la macro pour resumer), et que je mets 2 fois le même nom de fichier, um nessage d’alerte me demande si je souhaite remplacer le précédent, or avec cette macro la demande n’est pas generée et le fichier precedent est ecrasé. Quelle solution avons nous ? Ce cas se produit quand le même jour, je fais une entrée dans ma pharmacie d’ une nouvelle dotation de stupefiants (je signe alors le fichier) et que plus tard dans l’AM, je fais une “sortie” de stups. A ce moment le fichier d’entree premièrement generé sera effacé par le second.
J’espère avoir ete clair, sinon on decomposera les differents pb. Je te remercie d’avance, Cedrick M.STUPSV44.xlsm (182,0 Ko)

Bonjour,

Remplace par cette macro.
Elle enregistre en PDF toutes les feuilles sauf la feuille ACCUEIL dans un seul PDF (Demande N°1)

Elle enregistre avec le même nom, même date et au bout de la date, l’heure. Ce qui évite l’effacement du précédent à la même date (Demande N°3)

Pour la demande N°2, comme je ne connait pas la feuille à imprimer, j’ai rien exploiter.
Tout comme la mise en page avec un classeur et des feuilles protégées par mot de passe

Sub SignaturePDF()
'
' SignaturePDF Macro


Dim LaDate$, Nom$, Rep$  'Déclaration des variables
Sheets(Array("MOUVEMENTS", "RECAPITULATIF", "SALLE 1", "SALLE 2", "SALLE 3", "SALLE 4", "SALLE 5", "SALLE 6", "SALLE 7", "CMCE", "REVEIL", "DETAIL")).Select
LaDate = Format(Now, "yyyy_mm_dd_hh mm")
Nom = "STUPS"  'Nom de l'onglet ˆ entregistrer
Rep = "P:\DAR\Anestbo\Pharmacie (NEW)\Gestion des stupéfiants\Archive\ "   ' Chemin du rŽpertoire ˆ adapter depuis votre PC"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    Rep & LaDate & "_" & Nom & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False  'enregistrement du fichier en PDF

End Sub

Bonjour Mimimathy,
je te remercie pour ta reponse. Je vois à travers cette dernière, que parfois, il faut pousser le raisonnement un peu plus loin pour avoir la réponse qui parait avant complexe. L’exemple que tu me donnes sur le formatage du fichier en ajoutant l’heure d’enregistrement, j’admets que ne n’y avais pas du tout pensé, et pourtant j’ai passé un moment ces dernières semaines sur cette question.
Je reviens sur la question 2 que tu n’as pas traiter suite à un manque d’informations, en effet, la feuille à imprimer est la feuille “RECAPITULATIF”.

Re,

Macro à changer

Sub SignaturePDF()
'
' SignaturePDF Macro


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

End Sub

Macro super top, merci mais …
Comment ajouter dans le nom du fichier la valeur d’un champ concaténé en AA1 de l’onglet « clients » ?
J’ai dans l’onglet « clients » un champ ou je concatène 2 autres champs et je voudrais avoir comme préfixe du fichier sauvegardé en PDF la valeur de ce champ, est-ce possible ?
Merci d’avance pour la réponse
Michel

Sub VendeurOKtoPDF()

’ Enregistre en PDF l’onglet VendeurOK

Dim LaDate$, Nom$, Rep$ 'Déclaration des variables
LaDate = Format(Now, « yyyy_mm_dd_hh mm »)
Nom = « VendeurOK » 'Nom de l’onglet enregistrer
Rep = « D:\Auction\Acheteurs » ’ Chemin exact du répertoire
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

Bonjour

Modifies cette ligne :

Nom = « VendeurOK »

Comme ceci :

Nom = sheets (« clients »).Range (« AA1 ») & « VendeurOK »

Si l on souhaite un espace entre le rajouter avant Vendeur

Attention retaper les guillemets au clavier

Fais des essais et dis moi

1 « J'aime »

Hello
Tip top, ça fonctionne après une ou deux toutes petites adaptations cosmétiques sur le nom du fichier généré !
Merci pour le coup de main et belle journée

Merci du retour et bonne journée aussi