Grâce à un lien hypertexteIl suffit de construire un lien hypertexte MailTo en respectant sa syntaxe : mailto:Address[;MoreAddresses] [&Subject][&Body][&CC] [&BCC] Addresse : une ou plusieurs adresses e-mail valides séparées par un point-virgule. N'utilisez que des caractères autorisés. Utilisez &nbps; pour les espaces. Seul ce paramètre est obligatoire Subject : le texte qui apparaîtra dans l'objet du message. Body: le corps du message. CC : l'adresse à inclure dans la section "cc" (copie à). BCC : l'adresse à inclure dans la section "bcc" (copie cachée à). Vous devez ajouter un ? après la liste des destinataires, puis chaque paramètre doit être précédé par un & Sub MailTo() Dim sLien As String sLien = "mailto:" & Range("Destinataire") & "?" sLien = sLien & "Subject=" & Range("Objet") sLien = sLien & "&Body=" & ActiveCell.Text If Range("DestCc") <> "" Then sLien = sLien & "&cc=" & Range("DestCc") If Range("DestBcc") <> "" Then sLien = sLien & "&bcc=" & Range("DestBcc") ActiveWorkbook.FollowHyperlink sLien End Sub Avec le classeur actif en pièce jointePour automatiser l'envoi d'un classeur ouvert en pièce jointe, vous pouvez utiliser la boite de dialogue d'envoi standard d'Excel . Les 3 arguments que vous pouvez assignés à cette boite de dialogue sont : - recipients : le ou les destinataires. S'il y a plusieurs destinataires, vous devez utiliser un tableau pour affecter l'ensemble des destinataires.
- subject : correspond au sujet de votre message.
- return_receipt : doit être mis à true si vous voulez avoir un accusé de lecture
Dans l'exemple qui suit, les courriels des destinataires sont inscrits dans la plage D2:D30 Sub EnvoiXlMail() Dim sDest(), sSujet As String sDest = Range("D2:D3") sSujet = "Envoi du classeur" Application.Dialogs(xlDialogSendMail).Show sDest, sSujet, True End Sub
sDest est déclaré comme tableau, étant donné que je lui attribue ensuite les valeurs d'une plage (possible car une plage est un tableau en soi), il est impératif que le type de ce tableau soit variant |