envoi classeur actif + fichier annexe par email

  • Initiateur de la discussion Initiateur de la discussion oorphee
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

oorphee

Guest
Bonjour,
J'utilise déjà avec succès une macro pour envoyer le classeur actif par email:

Sub taux_de_change_email_marc()
ThisWorkbook.Save
ActiveWorkbook.SendMail Recipients:=Array("MMs.associes.Marc@gmail.com"), Subject:="Données VANCOUVER"
End Sub

J'aimerais par contre envoyé un 2ème fichier en pièce jointe qui se trouve par exemple sur C:\Program Files\xxx.txt

J'ai essayé plusieurs formules trouvées sur le site mais sans succès. Quelqu'un pourrait-il compléter ma macro ?

Merci (beaucoup) d'avance.
Bonne soirée
 
Re : envoi classeur actif + fichier annexe par email

Hello,

Teste en rajoutant ça:
.Attachments.Add "C:\...txt"


et même que peut-être comme ça tu peux joindre d'autres fichiers, mais pas sûr de moi.
.Attachments.Add "C:\...txt;.....xls;....doc;etc...."

Cdt, Hulk.
 
Re : envoi classeur actif + fichier annexe par email

Bonjour oorphee, Hulk, le Forum,

Je me permet de vous mettre ce que j'ai dans mes notes en espérant que cela vous sera utile.

Envoi par OutLook d'un onglet du classeur actif

http://www.excel-downloads.com/forum/110481-envoyer-un-onglet-de-classeur-par-email-en-pj.html

Dans Outils/Références cocher OutLook

Sub envoi_Feuille()
répertoireAppli = ActiveWorkbook.Path
Sheets("résultats").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs répertoireAppli & "\Resultats.xls"
ActiveWindow.Close
'--- Envoi par mail
Dim olapp As Outlook.Application
Sheets("destinataires").Select
Range("A11").Select 'Destinataire(s)
Do While Not IsEmpty(ActiveCell)
Dim msg As MailItem
Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
msg.To = ActiveCell.Value
msg.Subject = Range("A2").Value 'Objet msg.Body = Range("A5").Value & Chr(13) & Chr(13) & Range("A8").Value & Chr(13) & Chr(13) 'Texte et Signature
msg.Attachments.Add Source:=répertoireAppli & "\Resultats.xls" 'Feuille transmise
msg.Send
ActiveCell.Offset(1, 0).Select
Loop
End Sub

'Une autre solution autonome est proposée sur cette page :
http://www.tek-tips.com/faqs.cfm?fid=4334
'Testé sur outlook2000 et 2002 par l'auteur

Sub Mailer()
Sheets("BB Email Data").Select
pathname = [b11].value 'définit le fichier à attacher
dname = [b14].value 'définit la date du fichier
Dim objol As New outlook.Application
Dim objmail As MailItem
Set objol = New outlook.Application
Set objmail = objol.createitem(olmailitem)
With objmail
.To = "whoever" 'entrez ici l'adresse email
.cc = "whoever" 'entrez ici l'adresse du destinaitaire à mettre en copie
.Subject = "Test de mail " & dname 'objet du message (inclut la date de façon dynamique)
.Body = "Veuillez trouver ci-joint le fichier" & _
vbCrLf & "En cas de problème de réception, merci de m'en avertir" & vbCrLf
.NoAging = True
.Attachments.Add pathname 'Ajoute le fichier attaché
.display
End With
Set objmail = Nothing
Set objol = Nothing
SendKeys "%{s}", True 'Envoie le mail sans confirmation
End Sub

JFrancoisQC, Gibelle73, - Ajouté ou modifié le 25/08/2007 (N°1880)


Copier certaines feuilles et les envoyer par mail
Comment recopier dans un nouveau classeur quleques feuilles préalablement sélectionnées et les envoyer par mail au destinataire dont l'adresse est indiquée en A1 ?
La page de garde est prise de toute façon (elle doit être nommée ainsi ou sinon adapter la macro)



Private Function envoiMail()
Dim f As Worksheet
Dim c As Workbook
Dim w As Window

Set w = Windows(1)
ThisWorkbook.Sheets("Page de garde").Copy
Set c = Workbooks.Item(Workbooks.Count)
For Each f In w.SelectedSheets
If f.Name <> "Page de garde" Then
f.Copy after:=Workbooks(c.Name).Sheets("Page de garde")
End If
Next
For Each f In Workbooks(c.Name).Application.Worksheets
f.Protect Password:="blu"
Next
Workbooks(c.Name).SendMail [A1], "Sujet", False
c.Saved = True
c.Close
End Function

Rekam, - Ajouté ou modifié le 09/07/2005 (N°1650)

'Envoyer une feuille excel en tant que corps d'un mail et pas en pièce jointe en exécutant une macro
'réponse de H. S. le lundi 13 décembre 1999 13:06
'newsgroup : microsoft.public.fr.excel
'discussion : Envoi de mail à partir d'Xl


'RAJOUTER UNE REFERENCE AU CONTROLE MAPI
Sub mail_par_vba()

Dim myMessage As New MAPIMessages
Dim mySession As New MAPISession

mySession.UserName = "Hamard Stephane"
mySession.Password = "ZazaAsLesYeuxVertsSelonJ@C"
mySession.SignOn
myMessage.SessionID = mySession.SessionID

myMessage.Compose
myMessage.RecipAddress = "shamard@totoworld.fr"
myMessage.MsgSubject = "Resultat " & Format(Date, "dd/mm/yy")
myMessage.MsgNoteText = "Salut Zaza"
myMessage.AttachmentType = 0
myMessage.AttachmentName = "Fichier test"
myMessage.AttachmentPathName = "c:\perso\ emp\ est.txt"
myMessage.ResolveName

On Error Resume Next
'Je n'arrive pas à intercepter la fermeture de la fenêtre...
'donc j'utilise la gestion d'erreur (pas très bon).

myMessage.Send True
mySession.SignOff
End Sub

Stephane Hamard, - Ajouté ou modifié le 06/08/2004 (N°1468)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
1 K
S
Réponses
6
Affichages
2 K
soNZOOO
S
E
Réponses
1
Affichages
1 K
Réponses
5
Affichages
2 K
Retour