Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
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 .
 

Pièces jointes

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

Discussions similaires

Réponses
2
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…