[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

@+
 

jacky49

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

Bonsoir le forum, Lone Wolf,

Il fonctionne mais si je ne coche qu'une seule adresse mil, il me met quand même la 1ère adresse en envoie A et il me met en Cci celle que j'ai coché, autrement, j'ai remis un fichier dans le message #14 car la j'ai ajouté des colonne avec les caes à cocher devant et c'est vraiment cela mon problème, je voudrais pouvoir envoyer dans ma phrase toutes les courses qui sont cochées
merci
jacky
 

Lone-wolf

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

Re jacky,

Il fonctionne mais si je ne coche qu'une seule adresse mil, il me met quand même la 1ère adresse en envoie A et il me met en Cci celle que j'ai coché.

Oui, je n'y ai pas prêter attention avant de l'envoyer et comme mes connaissances en vba sont faibles, c'est pour cela qu'il y a des erreurs.


A+ :cool:
 

jacky49

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

Re le forum, Lone-Wolf,

que faut il ajouté au code pour que lorsque le fichier est envoyé par mail, les codes VBA ne fonctionne plus
Code:
Public c, cel, r, rg
Sub Envoi_mail()
 Dim CurrFile$, nom$, i&, j&
    Application.ScreenUpdating = False
    nom = ThisWorkbook.FullName ' pour envoyer le classeur actif
   
     With Feuil1
If .CheckBox1.Value = True Then
Set rg = Range("n4")
n = rg.Value
End If
End With
     With Feuil1
If .CheckBox3.Value = True Then
Set rg = Range("p4")
p = rg.Value
End If
End With
    With Feuil1
If .CheckBox4.Value = True Then
Set rg = Range("r4")
r = rg.Value
End If
End With
    With Feuil1
If .CheckBox5.Value = True Then
Set rg = Range("t4")
t = rg.Value
End If
End With
     With Feuil1
If .CheckBox6.Value = True Then
Set rg = Range("v4")
v = rg.Value
End If
End With
    With Feuil1
If .CheckBox7.Value = True Then
Set rg = Range("x4")
x = rg.Value
End If
    With Feuil1
End With
With Feuil1
If .CheckBox8.Value = True Then
Set rg = Range("z4")
Z = rg.Value
End If
End With
     With Feuil1
If .CheckBox9.Value = True Then
Set rg = Range("ab4")
ab = rg.Value
End If
End With
     With Feuil1
If .CheckBox10.Value = True Then
Set rg = Range("ad4")
ad = rg.Value
End If
End With
    With Feuil1
If .CheckBox11.Value = True Then
Set rg = Range("af4")
af = rg.Value
End If
End With
If .CheckBox12.Value = True Then
Set rg = Range("ah4")
ah = rg.Value
End If
End With
     With Feuil1
If .CheckBox13.Value = True Then
Set rg = Range("aj4")
aj = rg.Value
End If
End With
    With Feuil1
If .CheckBox14.Value = True Then
Set rg = Range("al4")
al = rg.Value
End If
End With
With Feuil1
If .CheckBox15.Value = True Then
Set rg = Range("an4")
an = rg.Value
End If
End With
     With Feuil1
If .CheckBox16.Value = True Then
Set rg = Range("ap4")
ap = rg.Value
End If
End With
    With Feuil1
If .CheckBox17.Value = True Then
Set rg = Range("ar4")
ar = rg.Value
End If
End With
    With Feuil1
If .CheckBox18.Value = True Then
Set rg = Range("at4")
at = rg.Value
End If
End With
     With Feuil1
If .CheckBox18.Value = True Then
Set rg = Range("av4")
av = rg.Value
End If
End With
    With Feuil1
If .CheckBox19.Value = True Then
Set rg = Range("ax4")
ax = rg.Value
End If
End With
    With Feuil1
If .CheckBox20.Value = True Then
Set rg = Range("az4")
aZ = rg.Value
End If
End With
     With Feuil1
If .CheckBox21.Value = True Then
Set rg = Range("bb4")
bb = rg.Value
End If
End With
     With Feuil1
If .CheckBox22.Value = True Then
Set rg = Range("bd4")
bd = rg.Value
End If
End With
    With Feuil1
If .CheckBox23.Value = True Then
Set rg = Range("bf4")
bf = rg.Value
End If
End With
    With Feuil1
If .CheckBox24.Value = True Then
Set rg = Range("bh4")
bh = rg.Value
End If
End With
     With Feuil1
If .CheckBox25.Value = True Then
Set rg = Range("bj4")
bj = rg.Value
End If
End With
    With Feuil1
If .CheckBox26.Value = True Then
Set rg = Range("bl4")
bl = rg.Value
End If
End With
    With Feuil1
If .CheckBox27.Value = True Then
Set rg = Range("bn4")
bn = rg.Value
End If
End With
    With Feuil1
If .CheckBox28.Value = True Then
Set rg = Range("bp4")
bp = rg.Value
End If
End With
    With Feuil1
If .CheckBox29.Value = True Then
Set rg = Range("br4")
br = rg.Value
End If
End With
     With Feuil1
If .CheckBox30.Value = True Then
Set rg = Range("bt4")
bt = rg.Value
End If
End With
    With Feuil1
If .CheckBox31.Value = True Then
Set rg = Range("bv4")
bv = rg.Value
End If
End With
     With Feuil1
If .CheckBox32.Value = True Then
Set rg = Range("bx4")
bx = rg.Value
End If
End With
     With Feuil1
If .CheckBox33.Value = True Then
Set rg = Range("bz4")
bz = rg.Value
End If
End With
    With Feuil1
If .CheckBox34.Value = True Then
Set rg = Range("cb4")
cb = rg.Value
End If
End With
    With Feuil1
If .CheckBox35.Value = True Then
Set rg = Range("cd4")
cd = rg.Value
End If
End With

Dim Ol As New Outlook.Application, Olmail As MailItem, _
ListeTo As String, liste As String

    Set Ol = New Outlook.Application
    Set Olmail = Ol.CreateItem(olMailItem)
    
    For i = 6 To Feuil1.Range("j65536").End(xlUp).Row
    If Cells(i, 10).Value = "" Then ListeTo = ListeTo & Cells(i, 11).Value
    If Cells(i, 10).Value = "X" Then liste = liste & Cells(i, 11).Value & ";"
    Next i
    

    With Olmail
        .To = ListeTo
        .BCC = liste
        .Subject = "Message de Jacky"
        .Body = " Bonjour," & vbCrLf & " Voici le fichier de pré-Inscription pour " & " " & n & "" & p & "" & r & "" & t & "" & v & "" & x & "" & Z & "" & ab & "" & ad & "" & af & "" & ah & "" & aj & "" & al & "" & an & "" & ap & "" & ar & "" & at & "" & av & "" & ax & "" & aZ & "" & bb & "" & bd & "" & bf & "" & bh & "" & bj & "" & bl & "" & bn & "" & bp & "" & br & "" & bt & "" & bv & "" & bx & "" & bz & "" & cb & "" & cd & "" & vbCrLf & " à remplir et à me renvoyer " & vbCrLf & " Sportivement " & vbCrLf & " @ Bientôt " & vbCrLf & " Jacky "
        .Attachments.Add nom
        .Display
    End With
End Sub
d'ailleurs, j'ai donc mis toute les checkbox que j'ai besoin, mais il y a peut être moyen de réduire le code
merci
jacky
 
Dernière édition:

jacky49

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

re bruno,

oui, en fait je démarre à la Checkbox 1 puis je passe à la 3 jusqu'a la 36 , dis moi comment faire la boucle et je ferais un essai
je viens de changer, je n'ai plus qu'une seule checkbox 18 , j'ai décalé les N°
merci
 
C

Compte Supprimé 979

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

Re,

Voici le code simplifié à tester
VB:
Sub Envoi_mail()
  Dim Inc As Integer, i&, sNomFic as String,  sNoms As String
  Dim Ol As Object, Olmail As MailItem, ListeTo As String, liste As String
  
  Application.ScreenUpdating = False
sNomFic = ThisWorkbook.FullName  ' pour envoyer le classeur actif

  With Feuil1
    If .CheckBox1.Value = True Then sNoms = .Range("N4").Value
    ' Ensuite boucle
    For Inc = 3 To 35  ' 16 To 82 Step 2
      If Me("CheckBox" & Inc).Value = True Then sNoms = sNoms & " " & .Cells(4, 14 + ((Inc - 2) * 2)).Value
    Next Inc
  End With


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


  For i = 6 To Feuil1.Range("j65536").End(xlUp).Row
    If Cells(i, 10).Value = "" Then ListeTo = ListeTo & Cells(i, 11).Value
    If Cells(i, 10).Value = "X" Then liste = liste & Cells(i, 11).Value & ";"
  Next i


  With Olmail
    .To = ListeTo
    .BCC = liste
    .Subject = "Message de Jacky"
    .Body = " Bonjour," & vbCrLf & " Voici le fichier de pré-Inscription pour " & sNoms _
    & vbCrLf & " à remplir et à me renvoyer " & vbCrLf & " Sportivement " & vbCrLf & " @ Bientôt " & vbCrLf & " Jacky "
    .Attachments.Add sNomFic
.Display
  End With
End Sub

Nota : Comme ton fichier est actif, tu ne pourras pas l'envoyer, tu auras un message d'erreur

Sinon mets nous ton fichier avec les checkbox

A+
 
Dernière modification par un modérateur:

Paritec

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

Bonjour Bruno Jacky le forum
moi j'avais fait un peu pareil, comme j'ai fait je met la modification, mais j'avais pas fait tout comme bruno
a+
papou:eek:
Code:
Sub test()
    Dim list$, i&, col&, a&
    With Feuil1
        col = 14
        For i = 1 To 36
            If .Controls("CheckBox" & i) Then
                list = list & " " & .Cells(4, col)                
                col = col + 2
            End If
          If i = 1 Then i = 2
        Next i
    End With
    'et là tu remplaces toute ta liste par list    
.Body = " Bonjour," & vbCrLf & " Voici le fichier de pré-Inscription pour " & " " & list & " " & vbCrLf _
& " à remplir et à me renvoyer " & vbCrLf & " Sportivement " & vbCrLf & " @ Bientôt " & vbCrLf & " Jacky "
End Sub
 
Dernière édition:

jacky49

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

bonsoir Bruno, Pascal,

donc dans le code de Bruno , j'ai une erreur dans cette ligne la
Code:
If Me("CheckBox" & Inc).Value = True Then sNoms = sNoms & " " & .Cells(4, 14 + ((Inc - 2) * 2)).Value
il me surligne Me et me dit:Erreur de compilation : Utilisation incorrecte du mot clé Me
Dans le code de Paritec, j'ai une erreur dans cette ligne la
Code:
If .Controls("CheckBox" & i) Then
et il me surligne Controls et me dit :
Erreur de compilation : Membre de Méthode ou de Données introuvable

merci de votre aide
jacky
 
Dernière édition:
C

Compte Supprimé 979

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

Re,

Sans fichier ... là, ça va être duuuuuuurrrr ;)

Mais essaye en enlevant "Me"

A+
 
Dernière modification par un modérateur:

jacky49

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

re,

je vais enlever des checkbox et des colonnes car la le fichier est tres lourd , je l'envoie maintenant
merci
jacky
 

Pièces jointes

  • Essai Checkbox.xlsm
    384.6 KB · Affichages: 48
Dernière édition:

Discussions similaires

Réponses
2
Affichages
118

Statistiques des forums

Discussions
312 231
Messages
2 086 438
Membres
103 209
dernier inscrit
MIKA33260