Ajouter pièces jointes

Résolu
Co_nexion Messages postés 333 Statut Membre -  
Co_nexion Messages postés 333 Statut Membre -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Co_nexion Messages postés 333 Statut Membre
       
      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
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Co_nexion Messages postés 333 Statut Membre
       
      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
    3. Co_nexion Messages postés 333 Statut Membre
       
      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
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Co_nexion Messages postés 333 Statut Membre
       
      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
    5. Co_nexion Messages postés 333 Statut Membre
       
      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