Mettre piece jointe en pdf vba word 2007
Résolu
olivia
-
m@rina Messages postés 23905 Date d'inscription Statut Contributeur Dernière intervention -
m@rina Messages postés 23905 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaiterais trouver le code vba pour mettre un document word en pdf en tant que piece jointe dans un email.
J'ai déjà écrit le code suivant qui me permet de la faire à partir d'un bouton de commande, mais la pièce jointe est en format word.
Private Sub CommandButton1_Click()
Set myApp = CreateObject("Outlook.Application")
Set myItem = myApp.CreateItem(olMailItem)
myItem.Subject = "subject"
myItem.Body = "Body text"
myItem.Attachments.Add ThisDocument.Path & "\" & ThisDocument.Name
myItem.to = "olivia.calegari@cecaz.caisse-epargne.fr"
myItem.Display
myItem.Send
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
End Sub
Merci d'avance pour votre aide
Olivia
Je souhaiterais trouver le code vba pour mettre un document word en pdf en tant que piece jointe dans un email.
J'ai déjà écrit le code suivant qui me permet de la faire à partir d'un bouton de commande, mais la pièce jointe est en format word.
Private Sub CommandButton1_Click()
Set myApp = CreateObject("Outlook.Application")
Set myItem = myApp.CreateItem(olMailItem)
myItem.Subject = "subject"
myItem.Body = "Body text"
myItem.Attachments.Add ThisDocument.Path & "\" & ThisDocument.Name
myItem.to = "olivia.calegari@cecaz.caisse-epargne.fr"
myItem.Display
myItem.Send
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
End Sub
Merci d'avance pour votre aide
Olivia
A voir également:
- Mettre piece jointe en pdf vba word 2007
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Save as pdf office 2007 - Télécharger - Bureautique
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Espace insécable word - Guide
7 réponses
Bonjour,
Bon, on va recommencer dès le départ car j'ai l'impression que tu ne maîtrises pas du tous les macros et que tu essaies de faire un truc fait de morceaux trouvés ça et là.
La méthode ExportAsFixedFormat , comme je l'ai dit, permet simplement de convertir un doc en pdf. ça ne permet pas d'envoyer le fichier. Le code d'automation que tu as récupéré permet de piloter Outlook depuis Word, et dans ton cas d'envoyer un mail avec une pièce jointe. La pièce jointe n'est plus le document en cours (ActiveDocument) mais le document PDF que tu auras créé et que tu ne pourras pas ouvrir avec Word ('inutile donc d'essayer).
Donc on va créer une macro qui va tout d'abord convertir le document, puis qui va envoyer ce document via l'automation. C'est d'ailleurs ce que fait la fonctionnalité toute faite... car même si tu ne le vois pas, le document est créé temporairement et- stocké dans un dossier temporaire.
Il faudrait aussi penser à demander l'adresse du destinataire, car on peut supposer que ce n'est pas toujours le même. On fera ça par une InputBox. Et puis un message sera bienvenu à la fin pour dire que le mail est parti.
Voici donc la macro :
m@rina
Bon, on va recommencer dès le départ car j'ai l'impression que tu ne maîtrises pas du tous les macros et que tu essaies de faire un truc fait de morceaux trouvés ça et là.
La méthode ExportAsFixedFormat , comme je l'ai dit, permet simplement de convertir un doc en pdf. ça ne permet pas d'envoyer le fichier. Le code d'automation que tu as récupéré permet de piloter Outlook depuis Word, et dans ton cas d'envoyer un mail avec une pièce jointe. La pièce jointe n'est plus le document en cours (ActiveDocument) mais le document PDF que tu auras créé et que tu ne pourras pas ouvrir avec Word ('inutile donc d'essayer).
Donc on va créer une macro qui va tout d'abord convertir le document, puis qui va envoyer ce document via l'automation. C'est d'ailleurs ce que fait la fonctionnalité toute faite... car même si tu ne le vois pas, le document est créé temporairement et- stocké dans un dossier temporaire.
Il faudrait aussi penser à demander l'adresse du destinataire, car on peut supposer que ce n'est pas toujours le même. On fera ça par une InputBox. Et puis un message sera bienvenu à la fin pour dire que le mail est parti.
Voici donc la macro :
Private Sub CommandButton1_Click() Dim fichier fichier = "C:\...\mondoc.pdf" 'donner le nom exact du fichier pdf et du chemin où il sera stocké 'Export du fichier actif en pdf ActiveDocument.ExportAsFixedFormat OutputFileName:=fichier, _ ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False 'demande l'adresse du destinataire destinataire = InputBox("adresse du destinataire") 'démarrage de l'automation Outlook : Set myApp = CreateObject("Outlook.Application") Set myItem = myApp.CreateItem(olMailItem) myItem.Subject = "Objet du mail" myItem.Body = "Texte du mail" myItem.Attachments.Add fichier myItem.to = adresse myItem.Display myItem.Send MsgBox "Le mail es bien envoyé" End Sub
m@rina
Bonjour
C'est une fonctionnalité qui existe par défaut... Une macro est elle nécessaire ?
Bouton Office, Envoyer => Envoyer comme pièce jointe au format PDF.
m@rina
C'est une fonctionnalité qui existe par défaut... Une macro est elle nécessaire ?
Bouton Office, Envoyer => Envoyer comme pièce jointe au format PDF.
m@rina
Bonjour marina
Merci pour ta réponse.
Je sais que c'est une fonctionnalité qui existe par défaut mais il faudrait que je puisse l'avoir en vba pour la raison suivante :
J'ai un doc word par exemple : une lettre sur laquelle je vais insérer 2 boutons qui vont permettre à l'utilisateur d'envoyer ce document par email à 2 groupes de personnes distincts.
J'ai rendu ces boutons invisibles lors de l'impression (avec l'option masqué) mais je souhaiterais aussi les rendrent invisibles dans ma piece jointe (quand l'utilisateur choisi l'envoi par mail) et la seule solution c'est de convertir mon doc word en pdf.
Merci pour ton aide
Merci pour ta réponse.
Je sais que c'est une fonctionnalité qui existe par défaut mais il faudrait que je puisse l'avoir en vba pour la raison suivante :
J'ai un doc word par exemple : une lettre sur laquelle je vais insérer 2 boutons qui vont permettre à l'utilisateur d'envoyer ce document par email à 2 groupes de personnes distincts.
J'ai rendu ces boutons invisibles lors de l'impression (avec l'option masqué) mais je souhaiterais aussi les rendrent invisibles dans ma piece jointe (quand l'utilisateur choisi l'envoi par mail) et la seule solution c'est de convertir mon doc word en pdf.
Merci pour ton aide
je viens de trouver la fonction qui je pense doit être utilisé dans ce cas:
ExportAsFixedFormat mais je ne sais pas comment l'utiliser et ou l'insérer dans mes lignes de code et quel exact je dois donner :
ActiveDocument.ExportAsFixedFormat (et après?)
merci pour votre aide
olivia
ExportAsFixedFormat mais je ne sais pas comment l'utiliser et ou l'insérer dans mes lignes de code et quel exact je dois donner :
ActiveDocument.ExportAsFixedFormat (et après?)
merci pour votre aide
olivia
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Rebonjour,
La méthode ExportAsFixedFormat permet simplement d'exporter (convertir) un document sous un autre format (MDF ou XPS en l'occurence) :
Ce code exporte le document actif en un fichier pdf du nom de mondoc.pdf, sur le lecteur C.
C'est tout ce que ça fait. Puisque ta macro est prête pour envoyer le fichier, il te suffira de remplacer le fichier par celui que tu auras converti en PDF.
m@rina
ps. : Merci de ne pas t'éparpiller sur plusieurs topics et de rester dans la même conversation, c'est quand même plus facile à suivre.
La méthode ExportAsFixedFormat permet simplement d'exporter (convertir) un document sous un autre format (MDF ou XPS en l'occurence) :
ActiveDocument.ExportAsFixedFormat OutputFileName:="C:\mon_chemin...\mondoc.pdf", _ ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
Ce code exporte le document actif en un fichier pdf du nom de mondoc.pdf, sur le lecteur C.
C'est tout ce que ça fait. Puisque ta macro est prête pour envoyer le fichier, il te suffira de remplacer le fichier par celui que tu auras converti en PDF.
m@rina
ps. : Merci de ne pas t'éparpiller sur plusieurs topics et de rester dans la même conversation, c'est quand même plus facile à suivre.
bonjour marina,
ca a l'air tellement simple mais malheureusement je suis débutante sur vba et j'ai du mal à tout saisir.
j'ai copié collé ton code et cela ne fonctionne pas.
je pense que j'ai du zapper quelque chose
ou l'insérerait tu dans ma ligne de code et peux tu me dire si il faut que je change certains champs.
Private Sub CommandButton1_Click()
Set myApp = CreateObject("Outlook.Application")
Set myItem = myApp.CreateItem(olMailItem)
myItem.Subject = "subject"
myItem.Body = "Body text"
myItem.Attachments.Add ThisDocument.Path & "\" & ThisDocument.Name
myItem.to = "test@test.fr"
myItem.Display
myItem.Send
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
End Sub
Merci pour ton aide précieuse et désolé pour l'autre post.
ca a l'air tellement simple mais malheureusement je suis débutante sur vba et j'ai du mal à tout saisir.
j'ai copié collé ton code et cela ne fonctionne pas.
je pense que j'ai du zapper quelque chose
ou l'insérerait tu dans ma ligne de code et peux tu me dire si il faut que je change certains champs.
Private Sub CommandButton1_Click()
Set myApp = CreateObject("Outlook.Application")
Set myItem = myApp.CreateItem(olMailItem)
myItem.Subject = "subject"
myItem.Body = "Body text"
myItem.Attachments.Add ThisDocument.Path & "\" & ThisDocument.Name
myItem.to = "test@test.fr"
myItem.Display
myItem.Send
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
End Sub
Merci pour ton aide précieuse et désolé pour l'autre post.
J'ai changé la ligne de code de marina en écrivant ceci :
ActiveDocument.ExportAsFixedFormat OutputFileName:="\" & ThisDocument.Name, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
mais cela ne fonctionne pas quand je l'insère dans mon private sub commandButton1.
Quelqu'un pourrait'il me dire ce que j'ai zappé.
Merci pour votre aide
ActiveDocument.ExportAsFixedFormat OutputFileName:="\" & ThisDocument.Name, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
mais cela ne fonctionne pas quand je l'insère dans mon private sub commandButton1.
Quelqu'un pourrait'il me dire ce que j'ai zappé.
Merci pour votre aide
Je viens d'essayer la manip suivante en reprenant le code de marina afin qu'il m'ouvre le doc
ActiveDocument.ExportAsFixedFormat OutputFileName:="\" & ThisDocument.Name, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True
Une fenêtre s'ouvre et me donne le message d'erreur suivant :
La page XML ne peut pas être affichée
Impossible d'afficher l'entrée XML en utilisant la feuille de style . Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.
--------------------------------------------------------------------------------
Un caractère incorrect a été trouvé dans un contenu de texte. Erreur de traitement de la ressource file:///Q:/envoie mail.x...
Y'a t'il une erreur dans la ligne de code?
Merci pour votre aide
ActiveDocument.ExportAsFixedFormat OutputFileName:="\" & ThisDocument.Name, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True
Une fenêtre s'ouvre et me donne le message d'erreur suivant :
La page XML ne peut pas être affichée
Impossible d'afficher l'entrée XML en utilisant la feuille de style . Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.
--------------------------------------------------------------------------------
Un caractère incorrect a été trouvé dans un contenu de texte. Erreur de traitement de la ressource file:///Q:/envoie mail.x...
Y'a t'il une erreur dans la ligne de code?
Merci pour votre aide
Olivia
myItem.to = adresse
évidemment c'est une erreur... Il falait lire :
myItem.to = destinataire
m@rina