Ajouter pièces jointes

Résolu/Fermé
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 11 juil. 2015 à 12:02
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 15 juil. 2015 à 18:55
Bonjour,

Je souhaiterai pouvoir ajouter des pièces jointes lors d'un envoi automatique d'un classeur excel par mail. (Excel 2010 / Outlook 2010)

J'utilise le code ci-dessous pour pouvoir trouver le chemin des documents à joindre à mon envoi par mail. Cependant je souhaiterai en plus pouvoir joindre ce ou ces documents lorsque je lance la macro d'envoi automatique par mail.

Je suppose que pour cela il faudrait noter dans une feuille (noté références - en J1 pour doc 1, en J2 pour doc 2) enregistrer les noms des fichiers sélectionnés. Puis dans un second temps les appeler lorsque que je lance la macro d'envoi automatique.

Pourriez-vous m'aider pour ces 2 étapes ?

Merci d'avance

Sub UseFileDialogOpen()

Dim lngCount As Long

' Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show

' Display paths of each file selected
For lngCount = 1 To .SelectedItems.Count
MsgBox .SelectedItems(lngCount)
Next lngCount

End With

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
11 juil. 2015 à 19:18
Bonjour,

si vous faites la recherche et selection fichiers dans la macro d'envoi automatique, pas besoin de mettre en memoire la "liste" des pieces-jointe

'Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = True
    .Show
    ' Display paths of each file selected
    For lngCount = 1 To .SelectedItems.Count
                'attache des fichiers: adaptez oEmail a votre programme
                oEmail.Attachments.Add .SelectedItems(lngCount)
    Next lngCount
End With
1
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
11 juil. 2015 à 23:16
Bonjour F894009,

Quand tu dis d'adapter l'email au programme, il s'agit de l'adresse mail ou de outlook ? Je pencherai pour la seconde solution mais cela marcherait-il avec plusieurs version d'outlook : 2003 et 2010 par exemple ? Et comment le préciser ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
12 juil. 2015 à 09:42
Bonjour,
c'est ce qui est en gras qu'il faut adapter a votre code. Valable pour tout les Outlook
oEmail.Attachments.Add .SelectedItems(lngCount)

par a vous de prevoir s'il n'y a pas de selection fichier(s)
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
12 juil. 2015 à 11:13
Bonjour,

Je ne comprends pas très bien ce qu'il faut adapter. Faut-il ici mettre le nom du fichier à attacher ? Le nom du classeur ?

Par avance merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
12 juil. 2015 à 11:32
Re,

dans le code d'envoi mail, vous devez avoir un objet defini comme cec ex:
Set OutMail = OutApp.CreateItem(0)

il faudra remplacer oEmail par le nom de cet objet, ici OutMail
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
13 juil. 2015 à 15:05
Bonjour,

j'ai du faire une connerie parce que arrivé à la ligne outmail la macro se bloque... Voici ce que j'ai fait, qui me semble pourtant correspondre à vos indications :

Sub Mail_workbook_Outlook_1()

Dim OutApp As Object
Dim OutMail As Object

MsgBox "Pensez à joindre à votre envoi la PJ. Ainsi que la vidéo si vous en avez une."

Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)

ThisWorkbook.Save

On Error Resume Next
With OutMail
.To = "xxxxx@zzzzz.fr"
.CC = ""
.BCC = ""
.Subject = "Titre_mail"
.Body = ""
.attachments.Add ActiveWorkbook.FullName
.Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
MsgBox "Merci pour votre envoi"
ThisWorkbook.Close
End Sub

Sub UseFileDialogOpen()

Dim lngCount As Long

' Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show

' Display paths of each file selected
For lngCount = 1 To .SelectedItems.Count
OutApp.attachments.Add.selectitems (lngCount)
'MsgBox .SelectedItems(lngCount)
Next lngCount

End With

End Sub


Merci
0