send email, y inclure fichier

  • Initiateur de la discussion Initiateur de la discussion news
  • 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 !

news

XLDnaute Impliqué
Bonsoir à tous du forum,

je veux envoyer un fichier Excell en cliquant sur un boutton de commande,
que le ficheir Excell est inclus/envoyé avec l'email,
mais sans que Msgbox d'Excell est affiché " un programme tente d'envoyer un email, .... " et sans avoir l'erreur 1004,


j'utilise l'expression suivante :

Sub Envoi_email()
ChDir "C:\" ' copy le fichier au C:\"ActiveWorkbook.SaveAs Filename:="C:\" & Range("A1").Text & "_" & Range("A2").Text, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=True

'Re : Erreur 1004 pour envoi mail est supprimé, n'est plus affiché avec l'expression suivante
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
'MailAd = Range("A1")
'Subj = Range("A2")
MailAd = ".....@....."
Subj = "verify it"
'Msg = Msg & Range("A3")
Msg = "l'email va être envoyé, news"

URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub

bon le fichier est enregistré sous le répertoire C:,
mais avec cette expression le fichier n'est pas envoyé avec l'email,

Comment inclure le fichier sans avoir la Msgbox d'Excell, sans avoir erreur 1004
et que la dialogue box de Microsoft Outlook ne se ferme pas automatiquement,
ainsi on peut ajouter encore du texte supplémentaire ?,


si on utilise l'expression suivante, le fichier est envoyé, mais la dialogue box de Microsoft Outlook se ferme automatiquement:

Sub envoi_auto()
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\" & Range("A1").Text & "_" & Range("A2").Text, FileFormat:=xlNormal, Password _
:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:= _
True
ActiveWorkbook.SendMail Recipients:=".....@.....lu"
'ActiveWindow.Close
End Sub

serait bien de recevoir des astuces comemnt effectuer ceci,

bonne soirée encore,
bonne soireé
 
Re : send email, y inclure fichier

Salut.

L'exemple ci dessous sert à créer une image des cellules de ton choix, et d'envoyer le tout par e mail.
Peut etre pourras tu y trouver des choses interessantes pour avancer dans ton code

Code:
Sub Envoi_Image()
    Call Export_Image_de_Plage
    Call Envoi_Mail
End Sub

Sub Export_Image_de_Plage()
Dim ndf As String
Dim Source As Range, Gr As Object
    ndf = ActiveWorkbook.Path & "\ImageDePlage.jpg"
    Set Source = Range("Feuil1!A2:H10")
    Source.CopyPicture xlScreen, xlPicture
    Set Gr = Sheets(1).ChartObjects.Add(0, 0, Source.Width, Source.Height)
    Gr.Chart.Paste
    Gr.Chart.Export ndf, "JPG"
    Gr.Delete
    Set Gr = Nothing
    Set Source = Nothing
End Sub

Sub Envoi_Mail()
Dim iMsg As New CDO.Message
Dim iConf As New CDO.Configuration
Dim Flds As Object
    Set Flds = iConf.Fields
    With Flds
        .Item(cdoSendUsingMethod) = cdoSendUsingPort
        .Item(cdoSMTPServer) = "Serveur SMTP" ' A spécifier
        .Item(cdoSMTPConnectionTimeout) = 10
        .Item(cdoSMTPAuthenticate) = cdoBasic
        .Item(cdoSendUserName) = "Identifiant de connection" ' A spécifier
        .Item(cdoSendPassword) = "Mot de passe de connection" ' A spécifier
        .Item(cdoURLProxyServer) = "server:80"
        .Item(cdoURLProxyBypass) = "<local>"
        .Item(cdoURLGetLatestVersion) = True
        .Update
    End With
    With iMsg
        Set .Configuration = iConf
        .To = "destinataire@domaine.com"  ' Adresse mail
        .From = "expéditeur@domaine.com" ' Ton Adresse mail
        .Subject = "Envoi automatisé"
        .TextBody = "Envoi automatisé de : ImageDePlage.jpg"
        .AddAttachment ActiveWorkbook.Path & "\ImageDePlage.jpg"
        .Send
    End With
End Sub
 
Re : send email, y inclure fichier

j'ai déjà vu cet exemple dans un forum,

uniquement avec CDO il faudra avtiver la référence : "Microsoft Outlook Library" (menu outils/références)
et ce que je voudrai pas,

avec l'expression "Envoi_Mail" ci-dessous j'ai un bug
et je voudrais pas envoyer le fichier comme .jpg, mais comme .xls

merci quand même pour réponse,
 
Re : send email, y inclure fichier

Bonsoir à tous du forum,

l'expression utilisée est:

Sub envoi_email() ' Msgbox Excell n'est pas affiché
ActiveWorkbook.Save

Dim MailAd As String
MailAd = ".....@....." ' y mettre les adresses email de destinataires
Application.Dialogs(xlDialogSendMail).Show MailAd
'ActiveWorkbook.Close
End Sub

Explications:
le fichier Excell y est ajouté/envoyé avec l'email,
n'est pas envoyé automatiquement,
ainsi on peut encore ajouter du texte, commentaire,

et il n'y pas de Msgbox Excell qui s'ouvre,

bonne soirée encore,
 
Re : send email, y inclure fichier

Bonsoir à tous du forum,

il fallait le trouver/ utiliser,
comme toutes les autres possibilités, propositions (voir plus bas)
je ne pouvais utiliser,
comme avais besoin de ceci:
que le ficheir Excell est inclus/envoyé avec l'email,
mais sans que Msgbox d'Excell est affiché " un programme tente d'envoyer un email, .... " et sans avoir l'erreur 1004, et que l'email n'est pas envoyé directement.



pleins d'expressions, lesquelles je ne pouvais pas utliliser :

Sub sent_email()
'Workbooks("nom de ton classeur").SendMail Recipients:="nom de destinataire", Subject:="verify"
Dim NewBook As Workbook
NewBook.SendMail ".....@....", "verify", True 'NewBook.SendMail "A", "B", True
NewBook.Close False
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbooks("sent_email,.xls").Close savechanges:=True
End Sub


Sub email()
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\" & Range("A1").Text & "_" & Range("A2").Text, FileFormat:=xlNormal, Password _
:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:= _
False
ActiveWorkbook.SendMail Recipients:=".....@...."
ActiveWindow.Close
End Sub


Sub email() 'Re : Erreur 1004 pour envoi mail, Msgbox Excell n'est pas affiché

Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
'MailAd = Range("A1")
'Subj = Range("A2")
MailAd = ".....@...."
Subj = "verify it"
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\" & Range("A1").Text & "_" & Range("A2").Text, FileFormat:=xlNormal, Password _
:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:= _
False

Msg = Msg & Range("A3")
Msg = "la macro fonctionne bien et envoi le fichier par email, bonne journée encore"

URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub


Sub emaill()
Dim Wbk As Workbook

ThisWorkbook.Sheets("Feuil1").Copy
Set Wbk = ActiveWorkbook
SendKeys "{E}"
Wbk.SendMail ".....@....", "bonjour, email est bien envoyé", True 'true pour un avis de reception

Wbk.Close savechanges:=True
Set Wbk = Nothing
End Sub

Sub Envoi_Image()
Call Export_Image_de_Plage
Call Envoi_Mail
End Sub

Sub Export_Image_de_Plage()
Dim ndf As String
Dim Source As Range, Gr As Object
ndf = ActiveWorkbook.Path & "\ImageDePlage.jpg"
Set Source = Range("Feuil1!A2:H10")
Source.CopyPicture xlScreen, xlPicture
Set Gr = Sheets(1).ChartObjects.Add(0, 0, Source.Width, Source.Height)
Gr.Chart.Paste
Gr.Chart.Export ndf, "JPG"
Gr.Delete
Set Gr = Nothing
Set Source = Nothing
End Sub

Sub Envoi_Mail()
Dim iMsg As New CDO.Message
Dim iConf As New CDO.Configuration
Dim Flds As Object
Set Flds = iConf.Fields
With Flds
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "Serveur SMTP" ' A spécifier
.Item(cdoSMTPConnectionTimeout) = 10
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = "Identifiant de connection" ' A spécifier
.Item(cdoSendPassword) = "Mot de passe de connection" ' A spécifier
.Item(cdoURLProxyServer) = "server:80"
.Item(cdoURLProxyBypass) = "<local>"
.Item(cdoURLGetLatestVersion) = True
.Update
End With
With iMsg
Set .Configuration = iConf
.To = "destinataire@domaine.com" ' Adresse mail
.From = "expéditeur@domaine.com" ' Ton Adresse mail
.Subject = "Envoi automatisé"
.TextBody = "Envoi automatisé de : ImageDePlage.jpg"
.AddAttachment ActiveWorkbook.Path & "\ImageDePlage.jpg"
.Send
End With
End Sub


' de nouveau dans cet expemple ci-dessous est affiché la Msgbox d'Excell
Sub EnvoiMail()

Private Sub sent_email_Click()

Dim OutlookApp As New Outlook.Application
Dim NewMail As Outlook.MailItem

Set NewMail = OutlookApp.CreateItem(olMailItem)
NewMail.Recipients.Add ("adresse@serveur.com")
NewMail.Subject = "mail"
NewMail.Body = "le fichier Excell est envoyé"
NewMail.Send

End Sub

' de nouveau dans cet expemple ci-dessous est affiché la Msgbox d'Excell

Private Sub email_Click()
Workbooks("email").SendMail Recipients:=".....@....", _
Subject:="Test envoi classeur", _
ReturnReceipt:=True
End Sub

Sub email()

Dim MailObj As Object
Set MailObj = CreateObject("outlook.Application")

If ThisWorkbook.Path = "" Then
MsgBox "Le document doit être sauvegardé avant de s'envoyer lui même"
Exit Sub ' C'est pas le cas !
Else
ThisWorkbook.Save
Set ObjNewMail = MailObj.CreateItem(olMailItem) ' 1) On crée le mail
With ObjNewMail
.Recipients.Add ".....@...."
.Recipients.ResolveAll ' test les adresses mail
' propriétés du mail :
.Importance = olImportanceHigh ' Importance du mail haute ...
.Subject = "Envoi email !" ' titre
.Attachments.Add ActiveWorkbook.FullName ' Pièce jointe
.Body = "Bonjour, ci joint un copie du fichier Excell !!" ' Corps
End With

ObjNewMail.Display ' Affiche le mail
ObjNewMail.Send ' et/ou l'envoi !
End If
End Sub


...
 
- 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

Discussions similaires

Réponses
20
Affichages
3 K
Réponses
3
Affichages
1 K
Retour