VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Macro excel envoi mail avec fichier joint [Résolu]

elsielaure 290Messages postés 26 avril 2010Date d'inscription 8 mars 2011Dernière intervention - Dernière réponse le 19 mai 2010 à 09:48
Bonjour,
J'aimerai envoyer automatiquement une feuille d'un fichier Excel via Outlook.
J'utilise la macro suivante que j'ai récupérée d'une autre discussion.
Sub SendMail()
' Copy the sheet(1)
ThisWorkbook.Sheets(1).Copy
' Send Email
With ActiveWorkbook
.SendMail Recipients:=Array("toto@ss.ch", "xxx@sss.ch"), Subject:="Test" & Format(Date, "dd/mmm/yy")
.Close SaveChanges:=False
End With
J'ai une liste de destinataire qui varie selon la feuille, j'ai donc essayé de modifier cette macro ainsi sachant que l'email du destinataire est inscrit sur la feuille 1 cellule M1 :
Function SendMail()
Dim y As String
Dim x As Integer
y = Sheets(1).Range("M1").Value
x = Sheets(1).Range("K1").Value
' Copy the sheet(1)
ThisWorkbook.Sheets(x).Copy
' Send Email
With ActiveWorkbook
.SendMail Recipients:="y", Subject:="test" & Format(Date, "dd/mmm/yy")
.Close SaveChanges:=False
End With
' Subject:=Range("Feuil1!B1").Value & " " & Range("Feuil1!A1").Value
End Function
Mais ça ne marche pas...
Pourriez-vous m'indiquer ce que je dois modifier s'il vous plaît.
Merci d'avance.
Elsie
Lire la suite 

Macro excel envoi mail avec fichier joint »

23 réponses
Réponse
+0
moins plus
re-
y est une variable. Donc dans :
.SendMail Recipients:="y", Subject:="test" & Format(Date, "dd/mmm/yy")  

il ne faut pas le mettre entre guillemets. Comme ceci :
.SendMail Recipients:=y, Subject:="test" & Format(Date, "dd/mmm/yy")  


Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Ajouter un commentaire
Réponse
+0
moins plus
Merci !!

Dites moi il y a moyen pour que la fenêtre "un programme essaye d'envoyer un message électronique en votre nom ...." ne s'affiche plus ?
pijaku- 17 mai 2010 à 16:04
Là je ne sais pas. Il s'agit d'une alerte Windows...
pijaku- 18 mai 2010 à 07:59
pour cette alerte, regarde ici la réponse de MichelXLD du 05/08/2005, 16h48
Bon courage
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Pour envoyer ma feuille j'utilise cette macro, que faut `il modifier afin de pouvoir ajouter un texte avant d'envoyer le mail.

Function SendMail()
Dim y As String
Dim x As Integer
y = Sheets(1).Range("M1").Value
x = Sheets(1).Range("K1").Value
' Copy the sheet(1)
ThisWorkbook.Sheets(x).Copy
' Send Email
With ActiveWorkbook
.SendMail Recipients:=y, Subject:="test" & Format(Date, "dd/mmm/yy")
.Close SaveChanges:=False
End With
End Function


Merci d'avance

Elsie
pijaku- 18 mai 2010 à 11:54
Sans conviction essaye ceci :
 & Chr(10) & 

Private Sub Bouton6_QuandClic() 
Dim y, chemin, nom As String 
Dim x As Integer 
Dim ol As Object, myItem As Object 
chemin = ActiveWorkbook.Path
y = Sheets(1).Range("M1").Value 
x = Sheets(1).Range("K1").Value 
nom = "contrôle " & Sheets(x).Name
ThisWorkbook.Sheets(x).Copy
ActiveWorkbook.SaveAs chemin & "\" & nom
Set ol = CreateObject("outlook.application") 
Set myItem = ol.CreateItem(olMailItem) 
myItem.To = y 
myItem.Subject = "envoi d'un fichier attaché" 
myItem.Body = "Bonjour, " & Chr(10) & "Vous trouverez ci-joint le tableau de Contrôle pour votre service. " & Chr(10) & "Merci de bien vouloir me faire un retour avec vos corrections. " & Chr(10) & "Cordialement, " & Chr(10) & "Elsie " 
myItem.Attachments.Add ActiveWorkbook.FullName
myItem.Send 
Set ol = Nothing 
ActiveWorkbook.Close
End Sub
elsielaure- 18 mai 2010 à 12:05
Ça me met ceci en rouge : & Chr(10) &

Erreur de compilation. Attendu numéro de ligne ou étiquette ou instruction ou fin d'instruction
pijaku- 18 mai 2010 à 14:28
Oui et bien là je suis autant bloqué que toi...
Je peux te suggérer des pistes, mais sans aucune certitude...
1- remplacer & Chr(10) & par "%0A" (ou %OA ou & "%OA" & ou & %OA &) Voir ici
2- remplacer & Chr(10) & par & vbCrLf &
ou encore utiliser le code html donné plus haut
Private Sub Bouton6_QuandClic() 
Dim y, chemin, nom As String 
Dim x As Integer 
Dim ol As Object, myItem As Object 
chemin = ActiveWorkbook.Path
y = Sheets(1).Range("M1").Value 
x = Sheets(1).Range("K1").Value 
nom = "contrôle " & Sheets(x).Name
ThisWorkbook.Sheets(x).Copy
ActiveWorkbook.SaveAs chemin & "\" & nom
Set ol = CreateObject("outlook.application") 
Set myItem = ol.CreateItem(olMailItem) 
With myitem
.To = y 
.Subject = "envoi d'un fichier attaché" 
.BodyFormat = olFormatHTML
.HTMLBody = "<HTML><body>Bonjour,<p>" _
        & "Vous trouverez ci-joint le tableau de Contrôle pour votre service.  "  _
        & "Merci de bien vouloir me faire un retour avec vos corrections. <p>" _
        & "Cordialement, "<p>" & _
        "Elsie "</b></body><HTML>"
.Attachments.Add ActiveWorkbook.FullName
.Send 
End With
Set ol = Nothing 
ActiveWorkbook.Close
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Cette macro marche parfaitement, j'ai du faire une erreur hier.

Private Sub Bouton6_QuandClic()
Dim y, chemin, nom As String
Dim x As Integer
Dim ol As Object, myItem As Object
chemin = ActiveWorkbook.Path
y = Sheets(1).Range("M1").Value
x = Sheets(1).Range("K1").Value
nom = "contrôle " & Sheets(x).Name
ThisWorkbook.Sheets(x).Copy
ActiveWorkbook.SaveAs chemin & "\" & nom
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
myItem.To = y
myItem.Subject = "envoi d'un fichier attaché"
myItem.Body = "Bonjour, " & Chr(10) & "Vous trouverez ci-joint le tableau de Contrôle pour votre service. " & Chr(10) & "Merci de bien vouloir me faire un retour avec vos corrections. " & Chr(10) & "Cordialement, " & Chr(10) & "Elsie "
myItem.Attachments.Add ActiveWorkbook.FullName
myItem.Send
Set ol = Nothing
ActiveWorkbook.Close
End Sub

Merci beaucoup pour ton aide !!
Elsie
Ajouter un commentaire
Ce document intitulé « Macro excel envoi mail avec fichier joint » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?