Enregistré sous le dossier en cour en PDF

Bonjour,

Mon peu de science en VBA s’arrêtant vite je bute sur un détail.

Je souhaite faire une macro pour une mise en page d'un fichier (ca c'est bon) et qu'a la fin il enregistre le fichier dans le dossier d’où il est ouvert et en PDF.

Pour le moment j'ai écrit ceci (merci a l'enregistreur):

ChDir "C:\Users\flo\Desktop\a classer sur réseau"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"C:\Users\flo\Desktop\a classer sur réseau\DV20-086.pdf", Quality _

:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=True

Mon soucie est que le dossier source et le nom du fichier change pour chaque fichier.

Je n'arrive pas a trouver le moyen de lui dire enregistre toi avec le nom du fichier excel et dans l'emplacement d'origine.

Merci de votre aide.

Bonjour

un essai :

pour le chemin :

chemin = thisWorkbook.Path & "\"

pour le nom :

monfichier = thisWorkbook.Name
monfichier = replace(monfichier,"xlsm","pdf")

et donc cela devient :

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Fred

Merci Fred pour ton aide

Pour tester j'ai ecrit la macro comme ceci:

Sub test()

chemin = ThisWorkbook.Path & "\"

monfichier = ThisWorkbook.Name
monfichier = Replace(monfichier, "xlsx", "pdf")

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nomfichier, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub

Arrivé a ActiveSheet......... il bug est me dit que le document n'est pas enregistré.

re bonjour

joint un document test, en ayant supprimer les données confidentielles

Fred

Edit...

si ton document sur lequel tu travailles est le fichier qui contient la macro... il ne faut pas mettre

xlsx mais bien xlsm dans le fonction replace...

monfichier = Replace(monfichier, "xlsm", "pdf")

8fichier-test.xlsm (23.20 Ko)
8fichier-test.xlsm (23.20 Ko)

Voila le fichier avec la macro intégré.

Pour info mes fichiers finaux seront en .xlsx

Comment cela ??? il seront en xlsx ??

je vais essayé d'extrapoler...

tu as un fichier dans lequel s’exécute le code, et tu travailles sur un autre fichier qui sera au format xlsx ?? et l'export sera sur ce dernier ??

si c'est cela, ils sont tous dans le même répertoire ??

Fred

Ci joint ton fichier et le code suivant :

en prévision d'un travail d'export pdf sur un fichier excel dans lequel il n'y pas le code...

Sub test()
Dim nomfichier$
monfichier = Split(ActiveWorkbook.Name, ".")(0) & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & monfichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
     IgnorePrintAreas:=True, OpenAfterPublish:=True
End Sub

Fred

6fichier-test.xlsm (25.01 Ko)

Oui pardon je n'ai pas été très clair.

En faite mes macro je les mets dans un classeur perso, les fichiers que j'utilise sont fourmi par les prestataires en xlsx.

Du coup en temps normal je place les fichiers reçu dans les dossiers correspondant aux affaires et je fait ma petite tembouille.

Je test ta réponse dans la journée et je reviens vers toi.

Merci

Rechercher des sujets similaires à "enregistre dossier cour pdf"