Microsoft 365 Joindre objet dans mail ou fichier sur box a joindre sur mail

ExcLnoob

XLDnaute Occasionnel
Bonsoir le Forum,

Savez-vous s'il est possible de joindre un objet (pdf) présent dans un classeur à un envoi de mail ?

Je m'explique.
Je souhaiterai joindre "en dur" 2 pdf à un mail que je génère via un bouton. Le chemin ne change pas mais les fichiers sont présent sur un lecteur réseau commun ce qui fait que je ne peux pas passer (ou alors je me trompe) par l'instruction :
Dim PJ As Variant
PJ = 'chemin du fichier'
.Attachments.Add PJ
Car le User va changer pour chaque utilisateur
J'ai donc pensé à insérer mes 2 fichier Pdf dans mon tableau sous forme d'objet et faire cibler mon .Attachments sur ces 2 objets mais voila, c'est là que le bas blesse, je ne sais pas joindre les 2 objets insérés dans mon classeur à mon mail.

Auriez-vous une idée ?
Quelle pourrait-être l'instruction pour joindre ces 2 objets ?
Y-a-t-il une solution pour que chaque utilisateur puisse générer la macro 'mail' avec les 2 PDF sachant que ceux-ci sont présent sur cette box commune ?

Je vous remercie par avance pour votre aide.
 

FS69

XLDnaute Nouveau
Bonjour,

Je ne suis pas expert en vba néanmoins je peux vous confirmer que ceci est possible.

Vous trouverez ci dessous un exemple de macro que j'utilise.

Celle ci me permettant l'envoi d'un fichier Excel converti en .pdf et nécessitant un mot de passe déclencher la macro d'envoi, elle permet également de conserver le fichier pdf dans un répertoire de sauvegarde.

Attention, a bien activer Microsoft Outlook 1x Object Library sinon celle ci ne fonctionnera pas.

Bon courage à vous


Sub SendWithMail()
Dim Mdp As String

Mdp = Application.InputBox("Veuillez introduire votre mot de passe")
If Mdp <> "TEST" Then MsgBox "Accès refusé !": Exit Sub

' Nécessite la référence : Microsoft Outlook 1x Object Library
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurFile As String
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
' "C:\Users\Thierry\AppData\Local\Temp\MaFeuille.pdf "
CurFile = ThisWorkbook.Path & "\" & "TEST.pdf"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With olMail
.To = "test@test.fr"
.CC = ""
.Subject = "#" & Range("Client!H1").Value & "#" & "TEST" & " " & Range("essai!B3").Value & " " & Range("Client!D3").Value
.Body = "Bonjour," & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint le fichier PDF" & vbNewLine & vbNewLine & _
"Cordialement"
.Attachments.Add CurFile
'.Attachments.Add "c:\My Documents\book.doc"
.Display '.Send
End With
MsgBox "Merci de vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK."
1
' Effacer les variables objets
Set olMail = Nothing
Set olApp = Nothing
Do While fich <> ""
Loop
Kill ActiveWorkbook.Path & "\" & "*.pdf" ' Là ou détruit le fichier créé

Dim Nomfichier$, DestinationFile$
Nomfichier = ThisWorkbook.FullName
DestinationFile = "C:\TEST\Sauvegarde\"
ThisWorkbook.SaveAs (DestinationFile & ThisWorkbook.Name)
Kill Nomfichier

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 088
Messages
2 085 202
Membres
102 817
dernier inscrit
Nini668