Microsoft 365 ajouter une pièce jointe à mon mail

FCMLE44

XLDnaute Impliqué
Bonjour

Le code ci-dessous fonctionne trés bien pour envoyer un mail depuis Excel

VB:
Sub LeMail()

Dim LeMail As Variant

Set LeMail = CreateObject("Outlook.Application") 'Création d'un Objet Outlook

With LeMail.CreateItem(olMailItem) 'informe le programme que nous voulons envoyer un mail
    .Subject = "Votre demande de simulation d'indemnité de départ"
    .To = Range("C4")
    .Body = "Votre Indemnité de départ"
    .Display 'pour afficher le mail avant de l'envoyer sinon Send
End With

End Sub

Néanmoins, je souhaiterais qu'il puisse y rajouter des pièces jointes que j'irais chercher dans l'explorateur windows
Ces fichiers pourront être au format pdf et excel

Merci
 
Solution
Bonjour,

FCMLE44

XLDnaute Impliqué
Bonjour

Voici
VB:
'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
Sub ChoixMultiFichiers_EnvoiMail()
    Dim Fichiers As Variant
    Dim i As Integer
    Dim Ol As Outlook.Application
    Dim olMail As MailItem
 
    'Affiche la boîte dialogue "Ouvrir"
    '(C'est l'argument True qui autorise la multisélection)
    Fichiers = Application.GetOpenFilename("Tous les fichiers (*.*),*.*", , , , True)
 
   Set Ol = New Outlook.Application
   Set olMail = Ol.CreateItem(olMailItem)
 
    With olMail
        .To = Range("D4")
        .Subject = "Votre demande de calcul d'indemnité de départ "
        .HTMLBody = "<html><body>Bonjour,</body></html><br>" & "<html><body>Veuillez trouver ci-joint la simulation demandée</body></html><br>" & "<html><body>Nous vous en souhaitons bonne réception</body></html><br>" & "<html><body>Cordialement</body></html>" & .HTMLBody 'le corps du mail ..son contenu
 
        'Boucle sur le tableau pour récupérer le nom du ou des classeurs sélectionnées.
        '(IsArray(Fichiers) renvoie False si aucun fichier n'a été sélectionné).
        If IsArray(Fichiers) Then
            For i = 1 To UBound(Fichiers)
                .Attachments.Add Fichiers(i)
            Next
        End If
 
        .Display
    End With
 
End Sub

Il me reste juste à trouver pour que ma signature Outlook se mette par défaut

Si quelqu'un a eu une idée

Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
 

FCMLE44

XLDnaute Impliqué
bonjour! j'aimerais savoir comment faire exactement la meme chose sauf que la liste de mails et dans un tableau excel d'une colonne avec pleins de mails de clients. j'ai copier cette VBA sur un bouton pour envoyer
Merci a tous !

Bonjour
Voici le code que j'avais trouvé et qui a été amélioré par une personne qui m'a gentiment aidé.
Je l'ai adapté à mon fichier

VB:
Sub ChoixMultiFichiers_EnvoiMail_ValidSTC()
    Dim Fichiers As Variant
    Dim i As Integer
    Dim Ol As Outlook.Application
    Dim olMail As MailItem
    Dim SigString As String
    Dim Signature As String

    'Affiche la boîte dialogue "Ouvrir"
    '(C'est l'argument True qui autorise la multisélection)
    Fichiers = Application.GetOpenFilename("Tous les fichiers (*.*),*.*", , , , True)

   Set Ol = New Outlook.Application
   Set olMail = Ol.CreateItem(olMailItem)

'Change only Mysig.htm to the name of your signature
SigString = Environ("appdata") & "\Microsoft\Signatures\travail.htm"

If Dir(SigString) <> "" Then
    Signature = GetBoiler(SigString)
Else
    Signature = ""
End If

    With olMail
        .To = Range("AA1")
        .CC = Range("AB1")
        .Subject = "Solde de Tout compte " & Range("B9") & " à valider"
        .HTMLBody = "<html><body>Bonjour,</body></html><br>" & _
            "<html><body>Ci-joint dossier Solde de Tout Compte pour validation</body></html><br>" & _
            "<html><body>Est-il possible de m'informer de sa validation pour envoi courrier au salarié ?</body></html><br>" & _
            "<html><body>Bonne réception</body></html><br>" & "<html><body>Cordialement</body></html>" & _
             "<br>" & Signature & .HTMLBody             'le corps du mail ..son contenu

        'Boucle sur le tableau pour récupérer le nom du ou des classeurs sélectionnées.
        '(IsArray(Fichiers) renvoie False si aucun fichier n'a été sélectionné).
        If IsArray(Fichiers) Then
            For i = 1 To UBound(Fichiers)
                .Attachments.Add Fichiers(i)
            Next
        End If

        .Display
    End With
End Sub

Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
    Dim fso As Object
    Dim ts As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
    GetBoiler = ts.readall
    ts.Close
End Function

Dans cette partie, je vais chercher le mail principal ainsi que la personne en copie dans deux cellules différentes
Code:
With olMail
        .To = Range("AA1")
        .CC = Range("AB1")

A toi de l'adapter à ton tour
 

danbibi

XLDnaute Junior
de plus je tombe sur cette erreur
1600877142131.png
 

Discussions similaires

Réponses
7
Affichages
555
Réponses
2
Affichages
619
Réponses
4
Affichages
630

Statistiques des forums

Discussions
314 732
Messages
2 112 286
Membres
111 499
dernier inscrit
cg19