Envoi de mail à partir d'un fichier Excel

Bonjour,

malgré les innombrables sujets sur la question je n'ai pas trouvé mon bonheur. Il faut que je précise que je suis plus que débutant en VBA.

Dans un 1er temps j'ai fait une macro qui m'a permis de générer 109 fichiers pdf à partir d'une dizaine de feuilles excel contenant chacune une dizaine de pages/Tableau.

Ma macro fonctionne bien (aprés pas mal de bidouille ... mais je débute). Maintenant j'essaye de passer à la suite.

Mes fichiers pdf sont répartis dans différents répertoires mais je les 'ai regroupé dans un seul histoire de me simplifier la chose dans un premier temps.

mon problème : je dois maintenant envoyer de 1 à x fichiers pdf à 1 à x destinataires.

Après bien des misères pour exporter mes destinataires d'outlook car en fait c'était des groupes de destinataires je me retrouve avec un fichier excel de ce type

colonne 1 (1 à x nom de fichiers séparés par ; ) colonne 2 un texte qui sera le sujet du message colonne 3 (1 à x destinataires séparés par ; ) plus un body qui sera identique pour tous les envois (au total 104 secteur pour environs 850 destinataires) cela fait 3 ans que je me fais les envois manuellement mais je crois que l'on doit pouvoir automatiser cela.

fichier excel de type :

fic1;fic2;fic3 | TDB secteur A | destinataire1@dom.fr;destinataire2@dom.fr ... |

pour les destinataires je pense qu'il suffit de mettre le contenu d'une cellule de la col 3 au bon endroit de la routine puisque tous mes destinataires concernés par l'envoi des fichiers du secteur X sont séparés par ;

Mais pour les fichiers à mettre en pièces jointes je ne sais pas faire d'autant qu'a chaque nom de fichier je dois ajouter un préfixe et un suffixe. (du style BMR_fic1_S2-2014.pdf )

j'espère avoir été clair.

merci de votre aide

Bonjour,

à tester après avoir modifié les lignes marquées comme telles.

Sub aargh()
    Dim r, v
    Set olApp = CreateObject("Outlook.Application")
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    prefixe = "e:\rt_"    'à modifier
    suffixe = "_s22.pdf"    'à modifier
    For i = 1 To dl

        Set olMail = olApp.CreateItem(olMailItem)

        With olMail
            .To = Cells(i, 3).Value
            .Subject = Cells(i, 2).Value
            .Body = "texte standard"
            v = Split(Cells(i, 1), ";")
            For j = LBound(v) To UBound(v)
                Cfil = prefixe & v(j) & suffixe
                .Attachments.Add Cfil
            Next j
            .Display    'pour afficher le message dans outlook
            '.Send ' pour envoyer le message automatiquement, enlever le commentaire
        End With
        Erase r
        Erase v
        Set olMail = Nothing

    Next i
    Set olApp = Nothing
End Sub

Waouh !!! tout a l'air si simple comme ça.

j'intègre ce dont j'ai besoin (enfin tout !) je teste et je reviens vers vous .

Merci beaucoup

RV

Rechercher des sujets similaires à "envoi mail partir fichier"