Mail à partir d'Excel - Corps du message Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
S
Sirouu
Jeune membre
Jeune membre
Messages : 29
Inscrit le : 26 juin 2013
Version d'Excel : 2010

Message par Sirouu » 22 août 2013, 16:16

Cher Tous,

J'ai lu sur ce topic que l'on pouvais envoyer des mails via Outlook depuis Excel :
http://forum.excel-pratique.com/cours-a ... 03-10.html
(au passage mille mercis pour ce code fabuleux)

J'ai donc adapté le code a mon fichier et voila ce que sa donne
'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 Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String
   
    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---------------------------------------------------------
   'Exemple pour envoyer un classeur en pièce jointe
   'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
   'If Nom_Fichier = "Faux" Then Exit Sub
'---------------------------------------------------------
   'Ou bien entrer le path et nom du fichier autrement
   Nom_Fichier = "K:\Notes de débit interne\2013\Frais de Holding - 3eme Acompte\frais convention 2013 3eme acompte.xlsm"
    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
     With oBjMail
        .To = "lui@gmail.com" ' le destinataire
        .CC = "lui-aussi@gmail.com; elle@hotmail.com" 'Ces bons à rien de Patron
       .Subject = "Frais de Holding - 3eme Acompte"          ' l'objet du mail
       .Body = "Bonjour, Ci-joint le troisieme acompte pour les Holding Fees. Cordialement"  'le corps du mail ..son contenu
       .Attachments.Add Nom_Fichier '"C:\Data\essai.txt" ' ou Nomfichier
       .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
       .Send
    End With

    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub

Le code fonctionne, le mail arrive a destination nickel, le seul petit hic c'est qu'au lieu de :
Bonjour, Ci-joint le troisième acompte pour les Holding Fees. Cordialement
J'aimerais bien :
Bonjour,
Ci-joint le troisième acompte pour les Holding Fees.

Cordialement
Comment mettre en forme le corps du message ? je n'arrive pas à faire des sauts de ligne, j'ai appuyer sur le bouton entrer, ce fut la castrophe :mrgreen: :mrgreen:

Merci pour votre aide.

Cordialement
A
Amadéus
Modérateur
Modérateur
Messages : 17'705
Appréciations reçues : 76
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 22 août 2013, 18:25

Bonjour
remplace
.Body = "Bonjour, Ci-joint le troisieme acompte pour les Holding Fees. Cordialement"
par
.Body = "Bonjour, Ci-joint le troisieme acompte pour les Holding Fees." & Chr(10) & Chr(10) & "Cordialement"
Cordialement
Amadéus vous informe que, pour cause de saturation, il ne peut plus répondre aux messages privés non sollicités.
Avatar du membre
sam20102
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 9 avril 2012
Version d'Excel : 2007 FR

Message par sam20102 » 22 août 2013, 21:04

Bonsoir,

Tu as aussi la possibilité de mettre : vbCrLf

ce qui donne:

.Body = "Bonjour," & vbCrLf & "Ci-joint le troisieme acompte pour les Holding Fees." & vbCrLf & vbCrLf & "Cordialement"
S
Sirouu
Jeune membre
Jeune membre
Messages : 29
Inscrit le : 26 juin 2013
Version d'Excel : 2010

Message par Sirouu » 23 août 2013, 00:08

@Amadéus, merci à toi pour ton aide

@Sam20102, merci également pour ton concours

J'en profite, j'ai deux petites questions qui me travaillent pour ce code.

1)
'---------------------------------------------------------
  'Ou bien entrer le path et nom du fichier autrement
  Nom_Fichier = "K:\Notes de débit interne\2013\Frais de Holding - 3eme Acompte\frais convention 2013 3eme acompte.xlsm"
    If Nom_Fichier = "" Then Exit Sub
Etant donner que le fichier contenant la macro et le fichier à envoyer par mail ce trouveront à chaque fois dans le meme repertoire, plutôt que de devoir réécrire à chaque fois "K:\Notes de débit interne\....", n'y aurais t'il pas un moyen de lui dire "Répertoire local\frais convention 2013 3eme acompte.xlsm" ?

2)

Je m'y connais pas en VBA, mais en regardant les cours proposé j'ai compris que la fonction se terminait par la valeur
End Sub
Alors novice comme je suis, je me suis dis que si en exécutant la macro je souhaiterais envoyer 2 mails plutôt qu'un, il suffirait de copier-coller la macro en dessous, et de changer les variables (destinataires, objets, ect..), cela ne marche pas, :( :( pourriez-vous m'aiguiller de façon a ce que je puisse enchaîner dans la même macro, le code pour un second mail, voir un troisième, le tout dans la même macro

Dois-je remplacer ce fameux End Sub par quelque chose ?

Encore merci pour votre concours.
D
Darzou
Membre fidèle
Membre fidèle
Messages : 278
Inscrit le : 17 décembre 2010
Version d'Excel : 2010

Message par Darzou » 23 août 2013, 00:42

Bonsoir,

1. Avec
thisworkbook.path & "\" & "lenomdufichier.xlsm"
La ligne
If Nom_Fichier = "" Then Exit Sub
ne sert à rien puisque la condition sera ici toujours fausse.
Idem pour le Display ou Send. C'est l'un ou l'autre mais les 2 ça ne sert pas à grand chose ici.

2. Qu'est ce qui change dans votre second mail ??

Cdt,

Darzou
S
Sirouu
Jeune membre
Jeune membre
Messages : 29
Inscrit le : 26 juin 2013
Version d'Excel : 2010

Message par Sirouu » 23 août 2013, 08:35

Bonjour Darzou

Dans les autres mails, tout est identique, sauf le destinataire et la pièce jointe.

L'objet, les destinataires en copie et le corps du message sont identiques.

Cordialement
S
Sirouu
Jeune membre
Jeune membre
Messages : 29
Inscrit le : 26 juin 2013
Version d'Excel : 2010

Message par Sirouu » 25 août 2013, 21:51

Bonsoir,

Une âme charitable pour m'aider sur ma requête ?

Mille mercis a vous !
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message