Créer un PDF à l'enregistrement du Exel

Résolu
David512 -  
 David512 -
Bonjour,

Je voudrai savoir s'il est possible de générer un fichier PDF à l'enregistrement de mon fichier exel en automatique ??

Car je voudrai éviter de passer par "enregistrer sous PDF" ou encore "PDF Créator" etc.


J'utilise Office 2010

Merci,


A voir également:

50 réponses

David512
 
Maintenant avec cette nouvelle version en enregistrant mon fichier excel j'obtient un message d'erreur:

Erreur d'exécution '1004':
Document non enregistré. Le document est peut-etre ouvert ou une erreur s'est produite lors de l'enregistrement.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'repertoire
rep = "P:\etude\Plan\Fiche\" & Left(ThisWorkbook.Name, 1)
'sous-repertoire
Sous_rep = Left(fichier_test, 4) & "00-" & Left(fichier_test, 4) & "99"
Nom_Fichier = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5)
strCheminComplet = rep & "\" & Sous_rep & "\" & Nom_Fichier & ".PDF"
'sauvegarde eb PDF et xlsx
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strCheminComplet _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
0
David512
 
Re,

Je n'ai plus de message d'erreur avec ce nouveau code mais le PDF ne se génére plus...
0
David512
 
Re,

J'ai peut être une solution un peu plus simple à vous apportez en changeant ma demande.

Je voudrai toujours générer un PDF à l'enregistrement mais cette fois-ci je voudrai que se soit sur le bureau. Ce PDF devra avoir le même nom que mon fichier excel.
Et j'irai le classer manuellement dans mes répertoires. je pense que se sera plus simple.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Ca marche chez moi, cela doit marcher chez vous.
Pouvez vouz mettre un point d'arret devant cette ligne

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strCheminComplet _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

et en passant le curseur de la souris sur strCheminComplet, vous verrez si le chemin et le nom de fichier est celui que vous attentez.

A+
0
David512
 
Le chemin comporte un dossier 0 mais j'en ai pas çà doit provenir du message d'erreur !!!
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Une question: le fichier .xls, que vous voulez en PDF, c'est un fichier qui a deja un nom ou il n'a jamais ete enregistre???
0
David512
 
il a déjà un nom mais à l'enregistrement je le renomme avec un numéro et le PDF aura le meme numéro
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

vous allez mettre le code ci-dessous a la place du code actuel.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'repertoire
rep = "P:\etude\Plan\Fiche\" & Left(ThisWorkbook.Name, 1)
'sous-repertoire
Sous_rep = Left(fichier_test, 4) & "00-" & Left(fichier_test, 4) & "99"
Nom_Fichier = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5)
strCheminComplet = rep & "\" & Sous_rep & "\" & Nom_Fichier & ".PDF"
'sauvegarde eb PDF et xlsx
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strCheminComplet _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub

manip a faire:

le fichier xls ouvert, vous l'enregistrez sans le fermer (enregistrer sous...). ensuite vous fermer le fichier, puis vous nous dites ce qui c'est passe.
0
David512
 
OK ! Alors j'ai un message d'erreur quand je ferme mon fichier ou il m'invite à cliquer sur débogageet quand je clic dessus il m'ouvre ThisWorkBook.

La ligne

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strCheminComplet _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

est surligner en jaune !!!!

+ une fléche jaune devant: OpenAfterPublish:=True
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Avez vous pense a regarder la valeur de strCheminComplet??

La fleche devant OpenAfterPublish:=True indique une erreur sur la ligne

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strCheminComplet _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True




OpenAfterPublish:=True ----> c'est pour ouvrir le fichier PDF apres son enregistrement une fois que cela marchera. A conserver ou pas
0
David512
 
J'ai créer des nouveaux chemins sous un serveur Z:
Dossier: Diffusions_Plans
Sous dossier: PDF
Sous dossier: FPI
Sous dossier: 7500-7599

donc j'ai modifié le chemin dans le code...

pour essai j'ai enregister sous mon fichier au nom : 7558 sur mon bureau


quand je met mon curseur sur strCheminComplet la valeur est:
"Z:\Diffusion_Plans\PDF\FPI\7\00-99\755.PDF
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
C'est normal, le code que je vous ai fourni est fait pour un nom de fichier bien cadre: ex: que vous avez donne A28669, donc si vous changez la longueur du nom de fichier ou son appellation cela ne marche plus.

\7\00-99\755.PDF ne correspond pas du tout a votre demande d'origine.
0
David512
 
J'ai du mal m'exprimé !!!

En fait mon fichier excel que je nomme 7558 correspond à une référence D28628

En gros je parle de la FPI N°7558 de la référence D28628.

Donc quand "j'enregistre sous" 7558.xls je veux que le fichier PDF généré aille se ranger dans "Z:\Diffusion_Plans\PDF\FPI\D\D28600-D28699\D28628\7558.PDF

Pour Info: Il faut savoir que dans mon fichier excel 7558.xls j'ai une cellule fusionné de W2 à Z2 ou je rentre la référence: D28628 et une autre cellule de W4 à Z4 ou je rentre le nom de mon fichier soit 7558.

Si on peut lier tout çà....

J'espére que je suis plus clair et encore désolé ;)
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

"P:\etude\Plan\Fiche\" et "Z:\Diffusion_Plans\PDF\FPI..." comment je fais pour
0
David512
 
Je n'ai pas compris votre question car je n'ai pas eu la fin du message ???
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
C'est simple, vous m'avez donne un chemin : "P:\etude\Plan\Fiche\" a un moment donne. Maintenant vous definissez un autre chemin "Z:\Diffusion_Plans\PDF\FPI..." qui est (je pense) fonction d'une reference que je ne connais pas.
Donc, comment je fais pour vous donnez satisfaction???
0
David512
 
Re,

Bonjour,

Le premier chemin que j'ai spécifié "P:\etude\Plan\Fiche\" est le chemin que j'ai actuellement pour ranger mes pdf !!!
donc je vous l'ai donné comme exemple !!!

Aujourd'hui on me demande de les ranger dans "Z:\Diffusion_Plans\PDF\FPI..." donc le 1er chemin n'existe plus. le code que vous créer doit prendre en compte le nouveau chemin...

Ce que je voudrai aujourd'hui est écrit dans le message du 2 avril 2012 à 16:38 !!
0
David512
 
Re,

Aprés avoir coller ce code :
Message d'erreur-> Erreur d'execution '9': L'indice n'appartient pas à la selection.

et la ligne: Reference = Worksheets("feuil1").Range("W2") est surligner en jaune !!!

Pour info, j'ai renommer ma "feuil1" en "FPI - Fiche" ; faut'il remplacer Worksheets("feuil1") par Worksheets("FPI - Fiche") ????
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Oui, c'est ecrit en commentaire dans le code
0