Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[VBA] Génération d'un PDF à partir d'une seule feuille puis envoi par mail

844 views
Skip to first unread message

HD

unread,
Nov 19, 2013, 12:12:03 PM11/19/13
to
Bonjour,

J'ai Excel 2007, je pensais utiliser la génération de mail avec fichiers PDF
en pièce jointe d'Excel 2007... seulement déjà manuellement lorsque je
clique sur bouton MS / Envoyer / Envoyer comme pièce jointe au format PDF
j'obtien alors un mail mais avec le PDF de l'ensemble des feuilles du
classeur...

Est il possible en VBA de générer un mail avec seulement la feuille qui
m'intéresse en pièce jointe ? Et ce en utilisant les fonctionnalités d'Excel
2007 (et supérieur).

Il est possible de passer par un script utilisant d'autres logiciels (PDF
Creator ou autres) mais je préférerais utiliser les fonctionnalités d'Excel
car la génération du PDF est bien plus rapide (en effet en VBA j'aurai une
rafale de mail avec PDF à créer et envoyer).

Merci d'avance pour votre aide,

Cordialement,

@+
HD


MichD

unread,
Nov 19, 2013, 2:42:23 PM11/19/13
to
Bonjour,

Tu fais un clic droit sur l'onglet à expédier,
Tu choisis la commande "Déplacer - Copier"
Dans la fenêtre ouvrante, tu coches dans le bas
de la fenêtre la case "Créer une copie" et dans la
liste déroulante du haut de la fenêtre, tu sélectionnes
"Nouveau classeur"

Dans le nouveau classeur, Fichier / envoyer vers / "envoyer en tant que
fichier Pdf.

Est-ce qu'une macro est vraiment nécessaire? L'enregistreur
de macro devrait te donner l'essentiel du code...


MichD
---------------------------------------------------------------



MichD

unread,
Nov 19, 2013, 3:01:20 PM11/19/13
to
En complément, si tu as besoin d'un coup de pouce pour la macro,
regarde à cette adresse : http://www.rondebruin.nl/win/s5/pdf.htm

MichD
---------------------------------------------------------------

HD

unread,
Nov 20, 2013, 4:15:31 AM11/20/13
to
Bonjour MichD,

> Tu fais un clic droit sur l'onglet à expédier,
> Tu choisis la commande "Déplacer - Copier"
> Dans la fenêtre ouvrante, tu coches dans le bas
> de la fenêtre la case "Créer une copie" et dans la
> liste déroulante du haut de la fenêtre, tu sélectionnes
> "Nouveau classeur" Dans le nouveau classeur, Fichier / envoyer vers /
> "envoyer en tant que fichier Pdf.
Arfff... effectivement je n'avai pas pensé à cette solution toute simple...
lol

> Est-ce qu'une macro est vraiment nécessaire ?
Cela sera nécessaire car je vais devoir mensuellement importer des données
en rafale et il faudra que les PDF de chaque destinataire soit automatique
car au début j'aurai une dizaine de PDF mais à terme peut être pas loin
d'une centaine. Et je devrai ensuite voir pour automatiser le mail avec
remplissage des adresses mails et envoi automatique au destinataire.

@+
HD


HD

unread,
Nov 20, 2013, 4:22:51 AM11/20/13
to
> En complément, si tu as besoin d'un coup de pouce pour la macro,
> regarde à cette adresse : http://www.rondebruin.nl/win/s5/pdf.htm
Un grand MERCI pour le lien et les réponses.

@+
HD


HD

unread,
Nov 20, 2013, 5:11:54 AM11/20/13
to
Je pense passer par l'export PDF Excel puis par l'envoi via la messagerie
Outlook. Pour les personnes qui seraient intéressées :

Sub Export_et_envoiPDF()
Dim AWkb As String
Dim o As Object
Dim m As Object

Application.EnableEvents = False
Application.DisplayAlerts = False
Sheets("Graph").Select
Sheets("Graph").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "C:\Tmp\tmp.xlsb", 50, , , True
AWkb = ActiveWorkbook.Name
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"c:\Tmp\AC.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=
_
False, IgnorePrintAreas:=False, OpenAfterPublish:=False
DoEvents
Workbooks(AWkb).Close
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.DisplayAlerts = True
Set o = CreateObject("Outlook.Application")
Set m = o.CreateItem(0)

m.To = "xx...@yyyy.com"
m.Subject = "Tableaux de bord"
m.Body = "Ci-joint les tableaux de bord"
m.Attachments.Add "C:\Tmp\AC.pdf"
'Repeat this line if there are more Attachments
m.Display
'm.Send 'If you want to just send it
End Sub

@+
HD


0 new messages