Macro pour mettre le fichier en PJ sous outlook

jahjah

XLDnaute Nouveau
Bonjour,

Voici mon problème:
j'ai une macro qui enregistre ma feuille en pdf vers un dossier précis et je souhaiterai que ce pdf soit mis en pj dans un nouveau mail outlook.
J'ai essayé plusieurs choses comme une macro avec le fichier temp mais rien ne fonctionne et mes connaissances sont limitées...
voici ma macro à ce jour
Sub Enregistrer_PDF()
'
' Enregistrer_PDF Macro
'
'
Dim fichier As String
fichier = "D:\KSVA\DEVIS FOURNISSEUR\" & [I20].Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
ignorePrintAreas:=False, OpenAfterPublish:=True
End Sub

en attente de votre aide précieuse
 
G

Guest

Guest
Re : Macro pour mettre le fichier en PJ sous outlook

Bonjour,

Le forum est truffé d'exemple du genre. Commence par regarder dans la section "Discussion similaires" en bas de cette page. Si tu n'y trouve pas ton bonheur fais d'abord une recherche dans la faq et les fils de discussion.

A+
 
G

Guest

Guest
Re : Macro pour mettre le fichier en PJ sous outlook

Re,

JahJah, si tu cherches du tout cuit, c'est sûr que tu ne trouveras pas. Mais je persiste, il y a beaucoup de solutions ressemblantes dans le forum, trouve en une qui s'en approche, essaie de l'adapter, et reviens.

A+
 

jahjah

XLDnaute Nouveau
Re : Macro pour mettre le fichier en PJ sous outlook

Bonjour Michel,

J'ai essayé différente façon mais ça bloque à chaque fois mon problème est d'envoyer l'email. Ne connaissant pas trop vba je galère, alors lorsque je cherche sur le net je trouve des solutions et essaye des les adapter en vain...
dans la macro cité en haut j'en suis au fait que mon pdf est enregistré dans le dossier et celui ci est ouvert. Maintenant je souhaiterai avoir le complément pour envoyer en pj dans outlook.
merci d'avance pour ta réponse
Bonjour Jahjah,
Ton problème vient-il de ta macro pour créer le PDF ou bien pour créer l'email avec la pièce jointe?
A te lire,
Michel
 

mprexcel

XLDnaute Junior
Re : Macro pour mettre le fichier en PJ sous outlook

Jahjah,
Tu devrais trouvé de l'aide dans les deux premières proposition reprises ci-dessous dans "Discussions similaires".
Si tu veux t'affranchir de l'utilisation d'Outlook ou d'un autre logiciel de messagerie, tu trouveras de l'aide dans les liens suivants :
Sending mail from Excel with CDO
Ce lien n'existe plus

Prends la peine de télécharger le fichier repris dans le premier lien et de le comprendre.
Je viens juste de mettre au point une macro en m'inspirant de ces 2 liens.
A te lire,
Michel
 

jahjah

XLDnaute Nouveau
Re : Macro pour mettre le fichier en PJ sous outlook

Je viens d'essayer plusieurs choses mais je ne pense pas avoir connaissance de tous les termes et fonctionnalités pour arriver à mon résultat à moins de passer beaucoup de temps dessus et/ou etre formé un minimum. J'ai aussi suite aux commentaires de Hasco essayé avec les discussions similaires mais sans succès...j'avoue que ça m'enerve un peu, j'exploite excel pour ma société afin d'éviter d'utiliser un ERP mais je ne suis pas informaticien ou expert dans excel pour arriver à mes fins!!! help me
Jahjah,
Tu devrais trouvé de l'aide dans les deux premières proposition reprises ci-dessous dans "Discussions similaires".
Si tu veux t'affranchir de l'utilisation d'Outlook ou d'un autre logiciel de messagerie, tu trouveras de l'aide dans les liens suivants :
Sending mail from Excel with CDO
Ce lien n'existe plus

Prends la peine de télécharger le fichier repris dans le premier lien et de le comprendre.
Je viens juste de mettre au point une macro en m'inspirant de ces 2 liens.
A te lire,
Michel
 

jahjah

XLDnaute Nouveau
Re : Macro pour mettre le fichier en PJ sous outlook

Michel,

Voilà ou j'en suis après maintes recherches

Sub SendEMailwithAttachments()
'
'
'
Dim fichier As String
fichier = "D:\KSVA\DEVIS FOURNISSEUR\" & [I20].Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

Dim ol As Object, myItem As Object
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
myItem.To = "adresse Email"
myItem.Subject = "envoi d'un fichier attaché"
myItem.Body = "ton corp de message"
'fichier en cours d'utilisation envoyé en attaché:
myItem.Attachments.Add ActiveWorkbook.FullName
myItem.Send


End Sub


Donc j'arrive à enregistrer mon pdf dans le bon dossier mais j'envoie le classeur excel comme pj.
Déjà avec ça je n'ai plus d'erreurs...maintenant je souhaiterai que le message ne soit pas envoyé mais que je puisse le faire moi même et que ce soit le fichier pdf qui parte...j'avance doucement

Jahjah,
Tu devrais trouvé de l'aide dans les deux premières proposition reprises ci-dessous dans "Discussions similaires".
Si tu veux t'affranchir de l'utilisation d'Outlook ou d'un autre logiciel de messagerie, tu trouveras de l'aide dans les liens suivants :
Sending mail from Excel with CDO
Ce lien n'existe plus

Prends la peine de télécharger le fichier repris dans le premier lien et de le comprendre.
Je viens juste de mettre au point une macro en m'inspirant de ces 2 liens.
A te lire,
Michel
 

jahjah

XLDnaute Nouveau
Re : Macro pour mettre le fichier en PJ sous outlook

j'arrive maintenant à creer mon fichier et l'enregistrer dans le dossier et je pense que je génère un fichier temp que j'envoie en pj. Il me manque juste que ce fichier envoyé en pj ait le même nom que le fichier enregistré en cellule I20. est ce possible?

Sub SendWithAtt()
' Nécessite la référence : Microsoft Outlook 1x Object Library
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim Fichier As String
Fichier = "D:\KSVA\DEVIS CLIENT\" & [I20].Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
' "C:\Users\Thierry\AppData\Local\Temp\MaFeuille.pdf "
CurFile = ThisWorkbook.Path & "\" & "MaFeuille.Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With olMail
.Subject = "Offre de prix"
.Attachments.Add CurFile
'.Attachments.Add "c:\My Documents\book.doc"
.Display '.Send
End With

' Effacer les variables objets
Set olMail = Nothing
Set olApp = Nothing
End Sub
 

mprexcel

XLDnaute Junior
Re : Macro pour mettre le fichier en PJ sous outlook

Bonjour Jahjah, bonjour le forum
Je ne sais pas si j'arrive trop tard, mais voici comment faire pour envoyer un la pièce jointe en fonction du nom du fichier repris dans une cellule :
déclare une variable avec le "chemin" ou Excel peut trouver le fichier. Dans ton cas chemin="c:\My Documents\"
Ensuite va chercher le nom du fichier : fichier=Worksheets("le nom de la feuille").cells(20,20).value
Si et seulement si tu n'as pas l'extension de fichier en (I,20), il faut la rajouter : extension=".pdf"
Pour finir : piecejointe=chemin & fichier & extension et modifier .Attachments.Add piecejointe

Michel
 

jahjah

XLDnaute Nouveau
Re : Macro pour mettre le fichier en PJ sous outlook

Bonjour Michel,

J'ai un problème concernant ma macro, j'ai voulu la mettre en place et elle ne fonctionne plus. J'ai une erreur de compilation => type défini par l'utilisateur non défini sur cette ligne là...
olApp As Outlook.Application
je ne comprends pas as tu des idées?

merci d'avance
Bonjour Jahjah, bonjour le forum
Je ne sais pas si j'arrive trop tard, mais voici comment faire pour envoyer un la pièce jointe en fonction du nom du fichier repris dans une cellule :
déclare une variable avec le "chemin" ou Excel peut trouver le fichier. Dans ton cas chemin="c:\My Documents\"
Ensuite va chercher le nom du fichier : fichier=Worksheets("le nom de la feuille").cells(20,20).value
Si et seulement si tu n'as pas l'extension de fichier en (I,20), il faut la rajouter : extension=".pdf"
Pour finir : piecejointe=chemin & fichier & extension et modifier .Attachments.Add piecejointe

Michel
 

mprexcel

XLDnaute Junior
Re : Macro pour mettre le fichier en PJ sous outlook

Bonjour Jahjah,
Comme je te l'ai écrit, je n'utilise pas Outlook ou un autre logiciel de messagerie pour envoyer les emails, j'utilise les CDO.
Donc, je ne suis pas certain d'être la bonne personne pour te répondre.
Je te conseillerais d'aller dans l'éditeur VBA -> Outils -> Références et voir si tu as la références Microsoft Outlook XX.Y Object Library qui est cochée (dans mon cas, XX.Y = 14.0).
Bon courage.
A te lire,
Michel
 

jahjah

XLDnaute Nouveau
Re : Macro pour mettre le fichier en PJ sous outlook

Bonjour Michel,

J'ai résolu mon problème et cela venait de ce que tu m'avais indiqué!!
mais j'en ai un autre qui est apparu sans savoir comment...maintenant j'ai bien mon fichier pdf avec le bon nom qui s'enregistre dans le bon dossier et l'autre qui se met en pj mais également un fichier pdf qui s'enregistre là ou est situé excel, je ne comprends pas...as tu une idée?

merci d'avance michel

Sub SendWithAttddppexp()
'
'
' Nécessite la référence : Microsoft Outlook 1x Object Library
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurFile As String
fichier = "D:\KSVA\DEVIS FOURNISSEUR\" & [I20].Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
' "C:\Users\Thierry\AppData\Local\Temp\Offre KSVA.pdf "
CurFile = ThisWorkbook.Path & "\" & "Offre KSVA.Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With olMail
.To =
.CC =
.Subject = "Demande de prix N°2011-"
.Attachments.Add CurFile
'.Attachments.Add "c:\My Documents\book.doc"
.Display '.Send
End With

' Effacer les variables objets
Set olMail = Nothing
Set olApp = Nothing
End Sub

Bonjour Jahjah,
Comme je te l'ai écrit, je n'utilise pas Outlook ou un autre logiciel de messagerie pour envoyer les emails, j'utilise les CDO.
Donc, je ne suis pas certain d'être la bonne personne pour te répondre.
Je te conseillerais d'aller dans l'éditeur VBA -> Outils -> Références et voir si tu as la références Microsoft Outlook XX.Y Object Library qui est cochée (dans mon cas, XX.Y = 14.0).
Bon courage.
A te lire,
Michel
 
Dernière édition:

mprexcel

XLDnaute Junior
Re : Macro pour mettre le fichier en PJ sous outlook

Bonjour Jahjah, bonjour le forum,
Heureux de t'avoir aider.
Je ne vois pas dans le code que tu as posté ce qui pourrais expliquer la création d'un autre fichier dans le répertoire d'Excel. Ceci écrit, je ne suis pas un expert non plus.
J'aurais peut-être une piste.
Tu "appelles" Outlook" et ensuite tu crées un nouveau document PDF :

Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
' "C:\Users\Thierry\AppData\Local\Temp\Offre KSVA.pdf "
CurFile = ThisWorkbook.Path & "\" & "Offre KSVA.Pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False


Essaie en créant d'abord le document PDF puis appelle Outlook.
Mais encore une fois, je ne suis pas un expert. D'autre part, le problème pourrait venir d'autres routines que tu utilises.
Enfin, pour terminer, je te conseillerais de rendre "anonyme" le code que tu postes. Supprime les informations non pertinentes telles que les adresses email. N'oublie pas que le Web n'est pas seulement fréquenté par des personnes bienveillantes, comme tu en trouves sur ce forum.
A te lire,
Michel
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 604
Membres
103 605
dernier inscrit
gabriel morency