Bonjour à tous,

J'ai entrepris de simplifier au maximum l'envoi des factures au sein de mon entreprise.
Grâce à l'aide de plusieurs personnes sur ce forum, j'ai pu automatiser la création des emails pour chaque client.
L'étape suivante est de réussir à ajouter la ou les pièces jointes qui correspondent aux bons contacts.

J'ai donc créé une liste de mes factures avec leur chemin d'accès avec quelques formules Excel.
Tous les chemins d'accès se trouvent donc dans la colonne G, à partir de la ligne 34.
Dans la colonne A de cette liste se trouve la formule que j'utilise pour m'adresser aux clients (ex : Chère Madame Dupont, Cher Monsieur Truc)

Je chercherais donc dans un premier temps à faire tourner la fonction Attachments.Add dans une liste, mais ma tentative ne fonctionne pas ; la macro ne comprend pas le " .Attachments.Add d"

Ensuite, je souhaiterais reproduire l'équivalent d'un Index(equiv) d'Excel pour que la macro n'ajoute que la ou les pièces jointes pour lesquelles la formule de politesse en colonne A est la même que la formule de politesse qui se met dans le corps de l'email (pour information, la formule de politesse destinée au corps de l'email est dans la colonne H). J'ai quelques idées pour réaliser ça, mais tant que la première étape ne fonctionne pas, je suis un peu coincée...

J'espère que c'est assez clair ; voici le code en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub BoutonAng_Cliquer()
Dim OL As Object
Dim Texte As String
Dim Ligne As Long
Dim MiseEnCopie As String
 
Ligne = 5
MiseEnCopie = Range("L2")
Set OL = CreateObject("Outlook.Application")
    While Range("C" & Ligne) <> ""
        With OL.CreateItem(0)
            Dest = Range("E" & Ligne) & " ; " & Range("F" & Ligne) & " ; " & Range("G" & Ligne)
            Sujet = Range("I" & Ligne)
            Texte = Range("H" & Ligne) & vbCrLf & vbCrLf
            Texte = Texte & Range("J" & Ligne) & vbCrLf & vbCrLf
            Texte = Texte & "Should you require any additional information, please do not hesitate to contact me." & vbCrLf & vbCrLf
            Texte = Texte & "Best regards," & vbCrLf & vbCrLf
            Texte = Texte & "Camille Robert" & vbCrLf
            Texte = Texte & "Financial Controller" & vbCrLf & vbCrLf
 
            .To = Dest
            .CC = MiseEnCopie
            .Subject = Sujet
            .Body = Texte
            .OriginatorDeliveryReportRequested = True 'confirmation de réception
            .Importance = 2
 
            For i = 33 To 100
            d = Sheets("ANG").Cells(i, 6)
            .Attachments.Add d
            Next i
 
            .Display
            '.Send envoi automatique
            Ligne = Ligne + 1
        End With
    Wend
 
End Sub
Merci par avance