Macro pour sauver une page excel en PDF - nom variable

Fermé
Misterbean1 Messages postés 53 Date d'inscription vendredi 13 mai 2011 Statut Membre Dernière intervention 22 août 2017 - 24 déc. 2014 à 13:36
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 27 déc. 2014 à 13:37
Bonjour,
Voilà mon problème, je vais essayer d'être le plus précis afin que vous puissiez m'aider au mieux, sachant que je suis un grand novice ....

J'ai réussi à créer une macro qui me permet de créer un fichier PDF à partir d'une FEUILLE excel et de sauver le fichier PDF à un endroit bien précis ainsi que me préparer un Email incluant ce fichier. Jusque là tout est ok sauf que, le chemin et nom du fichier pdf (test.pdf) est statique et que donc la prochaine fois que j'appuyerai sur le bouton lié à la macro, le fichier pdf sera écrasé par le nouveau et çà ne m'arrange pas. j'aimerais donc améliorer l'automatisation idéalement comme suit:

Je donne une référence variable (exemple: document12) dans une cellule, par exemple dans cellule A1 et ensuite lorsque j'active ma macro, j'obtiendrais un fichier pdf nommé " document12.pdf", qui sera sauvé et attaché automatiquement à l'Email.

D'avance merci pour vos lumières à ce sujet !!!


Pour vous aider à m'aider voici des extraits de ma macro:

* Macro qui crée le pdf, voici l'extrait principal


Dim FileName As String

If ActiveWindow.SelectedSheets.Count > 1 Then
MsgBox "There is more then one sheet selected," & vbNewLine & _
"be aware that every selected sheet will be published"
End If

FileName = Fonction_creer_PDF(Sheet4, "C:\Users\bibi\test.pdf", True, False)



* Cette macro est liée à une fonction (FunctionsModule) appellée Fonction_creer_PDF dont extrait ci-dessous:



Function Fonction_creer_PDF(Myvar As Object, FixedFilePathName As String, _
OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As String
Dim FileFormatstr As String
Dim Fname As Variant


If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
& Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then

If FixedFilePathName = "" Then
FileFormatstr = "PDF Files (*.pdf), *.pdf"
Fname = Application.GetSaveAsFilename("", filefilter:=FileFormatstr, _
Title:="Create PDF")

If Fname = False Then Exit Function
Else
Fname = FixedFilePathName
End If
If OverwriteIfFileExist = False Then
If Dir(Fname) <> "" Then Exit Function
End If

On Error Resume Next
Myvar.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=Fname, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=OpenPDFAfterPublish
On Error GoTo 0
If Dir(Fname) <> "" Then RDB_Create_PDF = Fname
End If
End Function
A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
24 déc. 2014 à 13:59
Bonjour,

'ex: cellule A1: document12
Fichier = Worksheest("feuil1").Range("A1") & ".PDF"
'ex: cellule A2: C:\Users\bibi\
Chemin = Worksheest("feuil1").Range("A2")
Filename = Fonction_creer_PDF(Sheet4, Chemin & Fichier, True, False
)
0
Misterbean1 Messages postés 53 Date d'inscription vendredi 13 mai 2011 Statut Membre Dernière intervention 22 août 2017 1
24 déc. 2014 à 14:14
Merci pour cette réaction rapide. etant un grand novice, peux-tu m'indiquer où je dois intégrer ces codes ?
De plus certains termes doivent être intégrer en anglais je pense non ? (ex: Chemin & Fichier, remplacé par Path & File, correct ?)

d'avance merci pour une réaction
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702 > Misterbean1 Messages postés 53 Date d'inscription vendredi 13 mai 2011 Statut Membre Dernière intervention 22 août 2017
24 déc. 2014 à 14:17
Re,

Ben a la place de cette ligne:

FileName = Fonction_creer_PDF(Sheet4, "C:\Users\bibi\test.pdf", True, False)
0
Misterbean1 Messages postés 53 Date d'inscription vendredi 13 mai 2011 Statut Membre Dernière intervention 22 août 2017 1 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
24 déc. 2014 à 14:43
J'ai remplacé comme mentionné dans la macro, cela ne crée pas de PDF, mais crée bien un Email avec les paramètres (destinataire, sub-jet,..) mais sans le fichier pdf et il n'est pas non plus sauvé.

Sans être expert, je pense qu'il faut aussi ajouter ou modifier dans le code de la "Function Modules" que j'ai donné dans mon message initial). peux-tu encore aider stp ?
Merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
24 déc. 2014 à 15:31
Re,

si avec ceci ca marche

FileName = Fonction_creer_PDF(Sheet4, "C:\Users\bibi\test.pdf", True, False)

mais fichier unique

avec ceci ca doit marcher, puisque je remplace le chemin et le fichier unique par les valeurs de cellules a condition que vous ayez rempli les dites cellules et modifie le nom de la feuille âr celui de cotre feuille ou vous mettez le chemin et le nom de fichier

'ex: cellule A1: document12
Fichier = Worksheest("feuil1").Range("A1") & ".PDF"
'ex: cellule A2: C:\Users\bibi\
Chemin = Worksheest("feuil1").Range("A2")
Filename = Fonction_creer_PDF(Sheet4, Chemin & Fichier, True, False

)
0
Misterbean1 Messages postés 53 Date d'inscription vendredi 13 mai 2011 Statut Membre Dernière intervention 22 août 2017 1
26 déc. 2014 à 11:39
Merci f894009 !

cela fonctionne effectivement. Dans la version GB d'Excel il faut remplacer Chemin & Fichier par Path & File. Voici le code complet en GB

File = Worksheets ("feuil1").Range("A1") & ".PDF"
Path = Worksheets ("feuil1").Range("A2")
Filename = Fonction_creer_PDF(Sheet4, Path & File, True, False)

Merci pour le support
MB
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
27 déc. 2014 à 13:37
Bonjour,

Dans la version GB d'Excel il faut remplacer Chemin & Fichier par Path & File. Voici le code complet en GB Pas du tout Path et File sont des mots reserves a ne pas utiliser n'importe comment. Dans votre cas j'ai utilise deux variables Chemin (pour l'acces au repertoire) et Fichier (pour le nom du fichier) qui sont passees en parametre a la fonction Fonction_creer_PDF qui les recoit sous le nom FixedFilePathName As String

Vous devez suivre le cheminement du code pour comprendre un minimum
0