Envoyer un fichier Excel en pièce jointe sous Ouloook 2010

Bonjour,

J'essaye de créer un code VBA pour envoyer un fichier excel en piece jointe d'un mail.

J'ai toujours une erreur sur mon .Attachments.Add ... comment mettre le chemin ou se trouve le fichier ?

Voici le code :

Merci pour votre aide !

'Envoi d'un email

Sub Envoyer_Mail_Outlook()

Dim ObjOutlook As New Outlook.Application

Dim oBjMail

Dim Nom_Fichier As String

Sheets("Formulaire_demandeur").Select

Cells(64, 2).Select

adr_dest = Selection.Value

'Sheets("Demande").Select

'Cells(62, 11).Select

'pj = Selection.Value

Set ObjOutlook = New Outlook.Application

Set oBjMail = ObjOutlook.CreateItem(olMailItem)

'---------------------------------------------------------

'Exemple pour envoyer un classeur en pièce jointe

'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")

'If Nom_Fichier = "Faux" Then Exit Sub

'---------------------------------------------------------

'Ou bien entrer le path et nom du fichier autrement

'Nom_Fichier = ActiveWorkbook

'If Nom_Fichier = "" Then Exit Sub

'---------------------------------------------------------

With oBjMail

.To = adr_dest '"xxx@xxx.com" ' le destinataire"

.Subject = "Ici c'est l'objet" ' l'objet du mail

.Body = "Ici le texte du mail " 'le corps du mail ..son contenu

.Attachments.Add pj '"C:\Data\essai.txt" ' ou Nomfichier

.send

End With

'ObjOutlook.Quit

Set oBjMail = Nothing

Set ObjOutlook = Nothing

End Sub

Hello MarieVT,

Pense à mettre ton code dans les balises code pour ta prochaine question !

Alors moi j'ai un code du même type que le tient et j'ai mis le chemin du fichier dans une variable.

Dim TempFilePath As String
TempFilePath = "C:\Data\essai.txt"
.Attachments.Add TempFilePath

Test pour voir.

Cordialement.

Bonjour,

Merci pour ta réponse et désolé je débute en VBA...

Ca continu à me mettre un message d'erreur... Entre les " " tu dois mettre l'endroit où se trouve ta pièce jointe ?

Parce que quand je le fais ca ne marche pas non plus...

With oBjMail
        .To = adr_dest '"marie.tempier@saint-gobain.com" ' le destinataire"
        .Subject = "Ici c'est l'objet"          ' l'objet du mail
        .Body = "Ici le texte du mail "  'le corps du mail ..son contenu
        Dim TempFilePath As String
        TempFilePath = "N:\Stagiaire_Raport_Theme\Stage_Marie_T\PROJETS\FORMULAIRES\Essais formulaires demande CAO\Formulaire_demande_CAO_TEST_3_avec_macros et pieces jointe"
        .Attachments.Add TempFilePath
        .send
    End With
    'ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub

Hello pas de soucis ,

Sur ce que je vois c'est que tu as pas précisé le type de fichier.

Le chemin me semble bon !

Apres ton ficher s'appelle comment?

TempFilePath = "N:\Stagiaire_Raport_Theme\Stage_Marie_T\PROJETS\FORMULAIRES\Essais formulaires demande CAO\Formulaire_demande_CAO_TEST_3_avec_macros et pieces jointe\nom_du_fichier. .xls ou .doc ou .txt" 'il faut que tu mettes le type de fichier que tu veux.

Si ça marche toujours pas envoi tes fichiers via le forum pour qu'on le corrige.

Ps essaye de mettre des _ entre les noms de ton fichiers c'est parfois plus simple pour vba à lire

exemple : test_forum_2016.xls

Bonne journée.

J'ai trouvé quelque chose qui marche:

'Envoi d'un email

Private Sub Valider_envoyer_Click()
MsgBox "Le questionnaire est prêt à être envoyé."
Sheets("Formulaire_demandeur").Select
Dim MonOutlook As Object
Dim MonMessage As Object
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.CreateItem(0)
MonMessage.To = "marie@eee.com"
'MonMessage.CC = ""
MonMessage.Subject = "Demande pour CAO"
MonMessage.Body = "Message"
MonMessage.Attachments.Add ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
MonMessage.send
Set MonOutlook = Nothing
End Sub

Bonne journée !

Parfait bravo,

Bonne journée et à bientôt peut-être.

Une dernière question,

J'aurai voulu que quand on appui sur le bouton Envoyer, il se fasse une copie du classeur entier qui semette en pièce jointe, et une fois envoyée, que cette copie soit supprimer mais mon programme ne fonctionne pas...

'Envoi d'un email

Sub Envoyer()
ActiveWorkbook.SaveCopyAs ("Copie_demande_CAO")
MsgBox "Le questionnaire est prêt à être envoyé."
Sheets("Formulaire_demandeur").Select
Dim MonOutlook As Object
Dim MonMessage As Object
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.CreateItem(0)
MonMessage.To = "marie@eee.com"
'MonMessage.CC = ""
MonMessage.Subject = "Demande pour CAO"
MonMessage.Body = "Message"
MonMessage.Attachments.Add ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
MonMessage.send
Set MonOutlook = Nothing
ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
End Sub

Essaye

ActiveWorkbook.Close SaveChanges:=False

Merci !!

Rechercher des sujets similaires à "envoyer fichier piece jointe ouloook 2010"