Microsoft 365 Envoi de mail auto VBA d'une cellule à une autre + selection de plusieurs PJ.

soNZOOO

XLDnaute Nouveau
Bonjour,

Je rencontre un petit souci avec mon code VBA (je suis débutant), j'ai pour objectif de programmer à l'aide d'une macro, un envoi de mail via Outlook. Ce mail contient un template qui est crée à base de RechercheV. A l'interieur de ce mail, j'aimerai y joindre plusieurs Pj, vous apercevrez plus bas que mon code n'est pas très très optimisé ahah, dû au faite que pour envoyer plusieurs pj j'ai du réaliser un code qui me permettais d'envoyer une seul PJ et ensuite faire un LoopUntil.
J'aimerais savoir si il est possible de choisir plusieurs Pj à la fois lorsque je clique sur la macro ?

Pour l'envoie de mail je n'arrive pas à mettre plusieurs personnes en copi, j'ai essayé plusieurs méthodes mais je n'y arrives pas :/.

Pour finir j'utilise une macro qui me permet d'envoyer ce que je selectionne c'est à dire de la cellule A4 à F16 et je me pose la question suivante : est il possible au lieu de selectionner l'ensemble du template, de dire au code de directement envoyer le mail de la cellule A4 a F16 ?

Je vous remercie ;)

Voici le code :
VB:
Sub Bouton1_Cliquer()
    Dim oOutlook As Object
    Set oOutlook = CreateObject("Outlook.Application")

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

    Dim Fichier As Variant

    With oMail

        Dim oObjetWord As Object
        Set oObjetWord = .GetInspector.WordEditor

        .to = "test@outlook.com"
        .CC = "test@gmail.com" ; "test2@gmai.com"
        .Subject = "Devis SR: " & Range("a5") & " / " & Range("b5") & " / " & Range("c5")
        .Body = ActiveCell
         Selection.Copy
         oObjetWord.Range(0).Paste

        .Display
    End With
Do
        Fichier = Application.GetOpenFilename("Tous les fichiers(*.*),*.*")
        MsgBox Fichier
        ajoutpj = MsgBox("Ajouter une autre pièce jointe ?", vbYesNo, "Ajout Pièce Jointe")
        oMail.attachments.Add Fichier
    Loop Until ajoutpj = vbNo

oMail.Send
Set oOutlook = Nothing

MsgBox " Votre mail à bien été envoyé."

End Sub
 

kiki29

XLDnaute Barbatruc
Salut, si tu es curieux je te conseille d'aller sur le site de Ron de Bruin
et tout particulièrement voir via 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 @kiki29 merci pour ta réponse !
J'ai suis déjà allé sur le site de Ron de Bruin, que je trouves très bien d'ailleurs, cependant je n'ai pas reussi à trouver mon bonheur ahah.

J'ai trouvé ce code mais je ne comprends pas grand chose :

strbody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2" & vbNewLine & _
"This is line 3" & vbNewLine & _
"This is line 4"
 

Discussions similaires

Réponses
2
Affichages
233
Réponses
6
Affichages
300

Statistiques des forums

Discussions
312 202
Messages
2 086 177
Membres
103 152
dernier inscrit
Karibu