Envoi de mail groupé avec pièces jointes différentes Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
n
nicaise
Jeune membre
Jeune membre
Messages : 46
Appréciation reçue : 1
Inscrit le : 23 janvier 2015
Version d'Excel : 2013

Message par nicaise » 27 janvier 2015, 15:13

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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'453
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 27 janvier 2015, 22:12

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 :
n
nicaise
Jeune membre
Jeune membre
Messages : 46
Appréciation reçue : 1
Inscrit le : 23 janvier 2015
Version d'Excel : 2013

Message par nicaise » 28 janvier 2015, 07:37

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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'453
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 28 janvier 2015, 13:05

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
n
nicaise
Jeune membre
Jeune membre
Messages : 46
Appréciation reçue : 1
Inscrit le : 23 janvier 2015
Version d'Excel : 2013

Message par nicaise » 28 janvier 2015, 18:37

Un grand MERCI

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

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 :wink:

Amicalement
1 membre du forum aime ce message.
Avatar du membre
Stecha21
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 17 juillet 2019
Version d'Excel : 2016

Message par Stecha21 » 18 juillet 2019, 03:31

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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'453
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 21 juillet 2019, 11:27

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).
Avatar du membre
Stecha21
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 17 juillet 2019
Version d'Excel : 2016

Message par Stecha21 » 21 juillet 2019, 20:32

Ok merci
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message