Envoi de mail groupé avec pièces jointes différentes

Bonjour,

Je voudrais un code VBA permettant d'envoyer d'excel vers OUTLOOK un mail à plusieurs destinataires avec des pièces jointes différentes.

Pour ce faire sur une feuille :

colonne A les adresses mails

colonne B les pièces jointes en lien hypertexte

En recherchant sur le web j'ai trouvé ce code qui ne fonctionne pas, mais qui m'a l'air un bon début

Dim OlApp As Outlook.Application

Dim OlItem As Outlook.Application

Sub envoi()

Dim cel As Range, fc As String, admail As String

Dim responsable As String, messmail As String

responsable = "Toto"

'ci-dessous une feuille "adresses"

For Each cel In Sheets("adresses").Range("A2:a33") 'si les données (adresses mail et fichier à envoyer) sont en A et B

admail = cel.Value

fc = cel(1, 2).Value 'attention mettre chemin complet du fichier à envoyer

messmail = "Bonjour" & Chr(10) & "Ci-joint, le fichier" & Chr(10) & Chr(10) & responsable

'ci-dessous vérifier le chemin d'outlook

Shell """C:\Program Files (x86)\Microsoft Office\Office12\OUTLOOK.EXE"""

Set ol = New Outlook.Application

Set olmail = ol.CreateItem(olMailItem)

With olmail

.To = admail

.Subject = "CHALETS A JOUR" 'Sujet

.Body = messmail 'Corps du mail

.Attachments.Add fc

.Display '.Send 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)

End With

End sub

Il semble avoir problème de déclaration

Quelqu'un peut-il m'aider ?

Merci d'avance

Amicalement

Edit : en réfléchissant est-il aussi possible d'avoir un code qui permet de lister sur une feuille excel les liens hypertexte des fichiers contenus dans un répertoire. Ce qui m'aiderait à récupérer les liens et les affecter aux adresses mail correspondantes

Bonsoir,

une proposition de correction de ta macro

Sub Envoi_mail()

'on cré le fichier PDFdans le même dossier que le fichier source

    Set OutApp = CreateObject("Outlook.Application")
    For Each cel In Sheets("adresses").Range("A2:a33")  'si les données (adresses mail et fichier à envoyer) sont en A et B
        fc = cel(1, 2).Value

        Set objmessage = OutApp.CreateItem(0)
        With objmessage
            .Subject = "CHALETS A JOUR"    'Sujet
            .To = cel.Value    'Email du destinataire doit-être correct ici
            .Body = "Bonjour" & Chr(10) & "Ci-joint, le fichier" & Chr(10) & Chr(10) & responsable
            .Attachments.Add fc
            .Send
        End With
        Set objmessage = Nothing

    Next
End Sub

par contre j'ai pas compris ce que tu voulais dans ce que tu as mis dans ton edit :

Merci beaucoup je vais tester ça.

Dans mon edit, pour être plus clair : les pièces jointes pdf sont dans un dossier.

je voudrais une macro sur excel qui liste dans une colonne tous les liens des fichiers (pdf ou autres) présent dans le dossier choisi,

Ainsi au lieu d'insérer sur ma feuille 1 par 1 le lien hypertexte du pdf correspondant au mail .

En ayant la liste de tous les liens listés par une macro il me reste ainsi qu'à placer le lien du fichier en face du mail correspondant.

J'espère avoir été clair

Encore merci pour le premier code

Bonjour,

une proposition pour la liste des fichiers

Sub listoffiles()
'Ouverture du fichier
    Set r = Application.InputBox("sélectionner la première cellule qui doit recevoir un nom de fichier", Type:=8)
    If r.Count > 1 Then Exit Sub

    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    With fd
        .Title = "Sélectionner répertoire"
        .Filters.Clear
        .AllowMultiSelect = False
        If .Show = -1 Then
            chemin = .SelectedItems(1)

    f = Dir(chemin & "\*.pdf")
    While f <> ""
        l = l + 1
        r.Cells(l, 1) = Replace(chemin & "\" & f, "\\", "\")
        f = Dir()
    Wend
        End If
    End With

End Sub

Un grand MERCI

Tout fonctionne à merveille et correspond exactement à ce que je voulais.

C'est impressionnant tout ce que l'on peut faire avec excel et vba.

Et franchement vous êtes très fort (toi et les personnes qui fréquentent le forum).

Je commence à me débrouiller en vba mais je suis très loin de ce que vous êtes capable de faire.

C'est sympa de partager votre savoir pour aider les autres, j'apprécie beaucoup

Amicalement

Bonjour,

J'aurai aussi besoin d'aide ma demande tire sur la tienne.

J'ai un tableau de données extraites de ma compta (factures de ventes ) je veux sur excel creer une lettre, un relevé pour tous les clients pour les factures du mois précédent afin que ceux ci puissent voir a l'avance si occupe facture ne manque à l'appel. J'avais réussi à faire une lettre avec des formules qui enumeraient toutes les factures concernant un clients mais il faut à chaque fois que je sélectionne le client et exporter et envoyer après. Imaginons une grande base... du coup j aimerais une formule un procédé une boucle VBA, j'y connais rien, afin que dans la lettre dès que toutes les factures concernant un tiers sont listées ligne par ligne avec la somme à la fin pour un client, il enregistre le fichier, envoie par mail et passe au client suivant. Mercii de m'aider

Bonjour,

Ton message ne suscite pas beaucoup de réactions. Je te conseille d'ouvrir un nouveau sujet et de suivre les recommandations du forum (voir 1er message du forum ou lien dans ma signature). tu nous indiques précisément ce que tu veux, tu nous mets un fichier avec des données exemple (situation de départ, règles de transformation éventuelles et situation après exécution de la macro).

Ok merci

Rechercher des sujets similaires à "envoi mail groupe pieces jointes differentes"