[excel 2003] envoi email auto - ajouter corps de message

Profane

XLDnaute Occasionnel
Bonjour a tous,
tous est dans le titre

voici la macro qui fonctionne MAIS j'ignore complétement comment ajouter un corps de texte....

********************************************
Private Sub CommandButton1_Click()

Dim Dest As String, Sujet As String
Sheets("Template").Select
ActiveSheet.Copy
Dest = "toto@orange.fr"
Sujet = "test"
ActiveWorkbook.SendMail Dest, Sujet, True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

End Sub
************************************

merci a tous pour votre aide

@+
 

Yaloo

XLDnaute Barbatruc
Re : [excel 2003] envoi email auto - ajouter corps de message

Bonsoir Profane, bonsoir le forum,

Je pense qu'il serait mieux de passer par Outlook.

Avec ce type de macro :

VB:
Sub envoi_mail()
    Dim OutApp As Object
    Dim OutMail As Object
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
      Set OutMail = OutApp.CreateItem(0)
      On Error GoTo Fin
      With OutMail
        .To = "xxx.yyy@orange.fr"
        .CC = ""
        .BCC = ""
        .Subject = "Test OutLook"
        .Body = "Bonjour " _
                & vbNewLine & vbNewLine & _
                "Ton texte " & vbNewLine & _
                "Ton texte"
        .Send
      End With
    Set OutMail = Nothing
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub

A te relire

Martial
 

Lone-wolf

XLDnaute Barbatruc
Re : [excel 2003] envoi email auto - ajouter corps de message

Bonsoir Martial, Profane,

@Profane: une autre façon de faire et en plus tu peux y inserer une image. N'oublie pas de cocher la référence Microsoft Outlook.xx object Library

Code:
Sub Envoi_Mail()
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim StrBody As String

Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(olMailItem)

StrBody = "<HTML><body>Bonjour Mesdames et Messieurs.<p>" _
        & "<br>" _
        & "Vous êtes cordialement invités à la séance hebdomadaire du 15 janvier 2003,<p>" _
        & "celle-ci aura lieu dans la salle Venus à 9h 30.<p>" _
        & "Pour ne pas perturber la bonne marche de l'entreprise, je vous prie d'être tous présents.<p>" _
        & "<br>" _
        & "Merci de votre compréhension.<p>" _
        & "<br>" _
        & "<br>" _
        & "La Direction.<p>" _
        & "<center><img src='chemin de l'image'></center></body><HTML>"
 With olMail
      .To = ""
      .CC = ""
      .Subject = "Séance hebdomadaire"
      .HTMLBody = StrBody
      .Display
   End With

    Set olMail = Nothing
    Set olApp = Nothing
End Sub


seance.jpg



A+ :cool:
 
Dernière édition:

jacky49

XLDnaute Impliqué
Re : [excel 2003] envoi email auto - ajouter corps de message

Bonsoir le forum,
Moi j'ai ce code fait par un membre du forum et qui fonctionne très bien mais auquel j'aimerais ajouté une case à coché par ex en colonne O et en ligne 4 donc en O4 qui me permettrais de joindre le texte qui est en P4
La dans mon message il y a Bonjour, @Bientôt, Jacky mais justement c'est dans cette phrase que je voudrais que la phrase situé dans la cellule P4 ici dans l'exemple avec la case à cocher en O4
Voic le code
Code:
Sub Envoi_mail1()
    Dim Ol As New Outlook.Application, Olmail As MailItem, CurrFile$, nom$, dest$, fin&, i&, a&, liste$, n&
    Set Ol = New Outlook.Application
    Set Olmail = Ol.CreateItem(olMailItem)
    Application.ScreenUpdating = False
    'nom = ThisWorkbook.FullName ' si un jour Jacky tu veux envoyer le fichier avec
    With Feuil1
        fin = Feuil1.Range("I" & Rows.Count).End(xlUp).Row
        For i = 5 To fin
            If .Cells(i, 12) <> "" Then dest = dest & .Cells(i, 113) & ";"
        Next i
    If dest = "" Then MsgBox "Vous n'avez choisi aucune Adresse", , "Pas de destinataire":  Exit Sub
        dest = Mid(dest, 1, Len(dest) - 1)
    End With
    With Olmail
        .To = dest
        .CC = liste
        .Subject = "Message de Jacky"
        .Body = "Bonjour," & vbCrLf & " @ Bientôt " & vbCrLf & " Jacky "
        '.Attachments.Add nom 'Jacky si un jour tu modifies pour envoyer un fichier tu retires le ' en début de ligne
        .Display
    End With
End Sub
merci
jacky
 

Pièces jointes

  • Suivi 2012-2013.xlsm
    29.5 KB · Affichages: 83
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : [excel 2003] envoi email auto - ajouter corps de message

Re jacky,

voici le fichier. J'ai supprimé dest qui causait problème. C'est bien ce que tu voulais?


A+ :cool:
 

Pièces jointes

  • Suivi jacky.xlsm
    32.6 KB · Affichages: 71
  • Suivi jacky.xlsm
    32.6 KB · Affichages: 70
  • Suivi jacky.xlsm
    32.6 KB · Affichages: 70

Lone-wolf

XLDnaute Barbatruc
Re : [excel 2003] envoi email auto - ajouter corps de message

Re jacky,

il y avait une erreur dans le code, désolé.


Voici le fichier corrigé et dis mois si ça joue.
 

Pièces jointes

  • Suivi jacky.xlsm
    33.4 KB · Affichages: 82
  • Suivi jacky.xlsm
    33.4 KB · Affichages: 85
  • Suivi jacky.xlsm
    33.4 KB · Affichages: 80
Dernière édition:

jacky49

XLDnaute Impliqué
Re : [excel 2003] envoi email auto - ajouter corps de message

re Lone-Wolf,

C'est exactement cela que je veux mais la je n'ai mis qu'une colonne mais en fait j'en aurais une douzaine et donc une case à cocher devant chaque et donc, suivant la case cocher, cela peut etre la colonne R avec la case à cocher en Q etc... et toujours en ligne 4
merci
jacky
 

Lone-wolf

XLDnaute Barbatruc
Re : [excel 2003] envoi email auto - ajouter corps de message

Re jacky,

pour mieux gerer les 12 ou + CheckBox, vaut mieux créer un module de classe et là je ne peux pas t'aider malheureusement, désolé. Tu trouvera des exemples sur le Forum, qu'il faudra adapter.

Bonne nuit :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : [excel 2003] envoi email auto - ajouter corps de message

Bonjour jacky,

en souhaitant que tu passe par ici.

J'ai rajouté un bout de code dans la feuille et modifié à nouveau le code du module. Maintenant, sans avoir besoin d'une multitude de CheckBox, tu peut sélectionner le ou les destinataires.


A te relire :cool:
 

Pièces jointes

  • Envois jacky-v4.xlsm
    36.6 KB · Affichages: 59
Dernière édition:

jacky49

XLDnaute Impliqué
Re : [excel 2003] envoi email auto - ajouter corps de message

Bonjour le Forum, Lone-Wolf,

merci de ton aide, je vais checher sur le forum pour le module de classe ou bien si un forumeur passe par la , il pourra peut-être m'aider mais déja merci beaucoup pour ce que tu as fait
jacky
 

jacky49

XLDnaute Impliqué
Re : [excel 2003] envoi email auto - ajouter corps de message

Bonjour le forum,

Donc n'arrivant pas faire les CheckBox dans un module de classe, je suis resté sur l'idée de LoneWolf et j'ai donc ajouté des ChecBox mais le code risque d'être lourd pour finir
je vous joins le fichier et le code
Code:
Sub Envoi_mail1()
    Dim Ol As New Outlook.Application, Olmail As MailItem, CurrFile$, nom$, fin&, i&, a&, liste$, n&
    Set Ol = New Outlook.Application
    Set Olmail = Ol.CreateItem(olMailItem)
    Application.ScreenUpdating = False
    nom = ThisWorkbook.FullName ' si un jour Jacky tu veux envoyer le fichier avec
    On Error Resume Next
    With Feuil1
        fin = .Range("L" & Rows.Count).End(xlUp).Row
        For i = 5 To fin
            If .Cells(i, 12).Value = "X" Then Set cel = .Cells(i, 13).Value
                Next i
    End With
With Feuil1.CheckBox1
If .Value = True Then
Set rg = Range("P4")
r = rg.Value
End If
End With
With Feuil1.CheckBox2
If .Value = True Then
Set rg = Range("R4")
s = rg.Value
End If
End With
With Feuil1.CheckBox3
If .Value = True Then
Set rg = Range("T4")
t = rg.Value
End If
End With
    With Olmail
        .To = cel
        .CC = liste
        .Subject = "Message de Jacky"
        .Body = "Bonjour," & vbCrLf & " Voici le fichier de pré-Inscription pour " & " " & r & "" & s & "" & t & "" & " à remplir et à me renvoyer " & vbCrLf & " Sportivement " & vbCrLf & " @ Bientôt " & vbCrLf & " Jacky "
        .Attachments.Add nom 'Jacky si un jour tu modifies pour envoyer un fichier tu retires le ' en début de ligne
        .Display
    End With
End Sub
merci
jacky
 

Pièces jointes

  • Suivi jacky-2.xlsm
    41.9 KB · Affichages: 73

Lone-wolf

XLDnaute Barbatruc
Re : [excel 2003] envoi email auto - ajouter corps de message

Bonsoir jacky,

toutes mes excuses pour ces répétitions. J'ai à nouveau rajouté quelque chose dans le fichier joint.

Mode d'utilisation: active la case à cocher des emails; ensuite, sélectionne une adresse, clique sur le bouton d'envois.

J'ai zippé le fichier devenu (bizarrement)trop lourd.




A+ :cool:
 

Pièces jointes

  • Envois mails jacky.zip
    317.8 KB · Affichages: 65
Dernière édition:

Discussions similaires

Réponses
2
Affichages
118

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote