Mettre piece jointe en pdf vba word 2007
Résolu/Fermé
olivia
-
8 sept. 2010 à 10:34
m@rina Messages postés 20016 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 16 avril 2024 - 9 sept. 2010 à 19:09
m@rina Messages postés 20016 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 16 avril 2024 - 9 sept. 2010 à 19:09
A voir également:
- Mettre piece jointe en pdf vba word 2007
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Supprimer une page word - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Espace insécable word - Guide
- Convertir pdf en word excel gratuit - Guide
7 réponses
m@rina
Messages postés
20016
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
16 avril 2024
11 268
9 sept. 2010 à 13:52
9 sept. 2010 à 13:52
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
m@rina
Messages postés
20016
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
16 avril 2024
11 268
8 sept. 2010 à 11:22
8 sept. 2010 à 11:22
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
m@rina
Messages postés
20016
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
16 avril 2024
11 268
8 sept. 2010 à 16:22
8 sept. 2010 à 16:22
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
9 sept. 2010 à 18:57
Olivia
9 sept. 2010 à 19:09
myItem.to = adresse
évidemment c'est une erreur... Il falait lire :
myItem.to = destinataire
m@rina