Microsoft 365 Fusion de 2 macro VBA (selection envoi de mail + envoie de fichier PDF)

soNZOOO

XLDnaute Nouveau
Bonjour,

Je suis étudiant et j'ai un projet en cours que j'aimerai bien réaliser grâce à vous ^^.
Alors voila, j'ai pour objectif de réaliser un fichier excel qui regroupe une base de donnée et à l'aide de celle-ci, j'ai réalisé 2 macros pour faciliter l'envoi de mail.
Dans la premiere macro se trouve le code qui permet d'envoyer par mail ce que nous avons au préalable selectionné c'est à dire le template ainsi que le nom du client :


Sub Bouton1_Cliquer()
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")

Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)

With oMail

Dim oObjetWord As Object
Set oObjetWord = .GetInspector.WordEditor


.to = "test@gmail.com"
.Subject = "TETS : " & Range("a12")
.Body = ActiveCell
Selection.Copy
oObjetWord.Range(0).Paste

.Display
End With



End Sub

La deuxieme macro qui permet d'envoyer par mail un fichier PDF :

Sub envoieClasseur()
Dim Fichier As Variant

'le programme ouvre une fenêtre où l'on sélectionne le fichier'
Fichier = Application.GetOpenFilename("Tous les fichiers(*.*),*.*")

MsgBox Fichier

'ici on demande d'utiliser Outlook comme client de messagerie'
Dim MaMessagerie As Object
Dim MonMessage As Object
Set MaMessagerie = CreateObject("Outlook.application")
Set MonMessage = MaMessagerie.Createitem(0)

'ici nous définissons les champs du mail'
'entre guillemet il faut indiquer les adresses mail'
MonMessage.to = "test@gmail.com"
MonMessage.CC = "test@outlook.com"

'ici nous commencons la rédaction du mail'
MonMessage.attachments.Add Fichier

'sujet du mail'
MonMessage = "Test envoi PJ depuis Excel"

'Corps du mail'
contenu = "Bonjour,"
contenu = contenu & Chr(10) & Chr(13)
'les caractères CHr indiquent un saut de ligne'
contenu = contenu & "Veuillez trouver en pièce jointe le fichier Excel" & Chr(10) & Chr(13)
contenu = contenu & "Cordialement" & Chr(10) & Chr(13)
contenu = contenu & "TEST"
MonMessage.body = contenu

'ici on provoque l'envoi du mail et de sa pièce jointe'
MonMessage.Send

'réinitialisation de la messagerie'
Set MaMessagerie = Nothing

'Boite de dialogue qui confirme envoi du message et de sa pièce jointe'
MsgBox " Votre mail à bien été envoyé"

End Sub

Voici les deux macros, cependant j'aimerai bien les fusionner en 1 seul et même boutton qui permettrait toujours d'envoyer la selection par mail et d'y joindre un fichier PDF.
Je suis ouvert à tout autres propositions pour faciliter l'envoie de devis à l'aide d'une base de donnée.
Je vous remercie.

soNZO.
 

kiki29

XLDnaute Barbatruc
Salut,il y a CDO
Pourquoi utiliser le code CDO au lieu de l'automatisation Outlook ou SendMail dans VBA.
1 : Peu importe le programme de messagerie que vous utilisez (il utilise uniquement le serveur SMTP).
2 : Peu importe la version d'Office que vous utilisez (97…2016)
3 : Vous pouvez envoyer une plage/feuille dans le corps du courrier (certains programmes de messagerie ne peuvent pas le faire)
4: Vous pouvez envoyer n'importe quel fichier que vous aimez (fichiers Word, PDF, PowerPoint, TXT,….)
5 : Aucun avertissement de sécurité, vraiment génial si vous envoyez beaucoup de courrier en boucle.
 

soNZOOO

XLDnaute Nouveau
Salut,il y a CDO
Pourquoi utiliser le code CDO au lieu de l'automatisation Outlook ou SendMail dans VBA.
1 : Peu importe le programme de messagerie que vous utilisez (il utilise uniquement le serveur SMTP).
2 : Peu importe la version d'Office que vous utilisez (97…2016)
3 : Vous pouvez envoyer une plage/feuille dans le corps du courrier (certains programmes de messagerie ne peuvent pas le faire)
4: Vous pouvez envoyer n'importe quel fichier que vous aimez (fichiers Word, PDF, PowerPoint, TXT,….)
5 : Aucun avertissement de sécurité, vraiment génial si vous envoyez beaucoup de courrier en boucle.
Mais le CDO permet d'envoyer la feuille en entier si je ne me trompe ? Je t'envoie une capture de ce que je souhaite faire si cela ne te deranges pas.
Je selectionne le template qui sera remplis à l'aide de VLOOKUP et ensuite je clic sur envoyer mail et c'est a ce moment la où j'aimerais intégrer une PJ ;).
macro capture.PNG
 

Pièces jointes

  • Capture macro 2.PNG
    Capture macro 2.PNG
    15.1 KB · Affichages: 16

Discussions similaires

  • Question
Microsoft 365 Excel VBA
Réponses
14
Affichages
224

Statistiques des forums

Discussions
302 236
Messages
2 001 688
Membres
215 256
dernier inscrit
Adso