Microsoft 365 Envoi mail avec plusieurs PJ vba

Arnaud H

XLDnaute Nouveau
Bonsoir,

J'ai cherché sur plusieurs forums une solution mais je n'en ai pas trouvé.
Je voudrais faire une macro qui puisse envoyer plusieurs mails avec plusieurs pièces jointes dont les fichiers commenceraient par le même début:

J'ai commencé à bricoler une macro qui marche bien pour envoyer un fichier mais je n'arrive pas à trouver la solution pour envoyer tous ceux qui commencent par "A1" par exemple.

Je joints le fichier excel pour l'exemple. Pour info, le secteur correspond à A1, A2...

J'ai un dossier (C:\Doc\Retards\) avec dedans que des fichiers PDF (environ 50) commençant par A1... - Retards.pdf, A2...- Retards.pdf, A3...- Retards.pdf, etc. / Il n'y a pas le même nombre de fichiers A1.., A2..., etc...et le nombre peut changer à chaque extraction.

J'ai déjà essayé en mettant secteur & "* - Retards.pdf" mais ça ne marche pas...

En espérant que vous ayez compris le but de ma question...

Merci d'avance pour vos retours.

Bonne soirée.
 

Pièces jointes

  • Exemple retards.xlsm
    14.2 KB · Affichages: 5

Oneida

XLDnaute Impliqué
Bonjour a tous

Arnaud H:​

Comment faite vous la recherche de vos fichiers?
Pour un envoi multi pieces jointes, il faut faire une boucle sur les noms de fichers trouves
Exemle pour fichier commencant par ar
VB:
    F = Dir("E:\_Docs\ar*")
    Do While F <> ""
        .Attachments.Add F
    Loop
 

Arnaud H

XLDnaute Nouveau
Bonjour,

Merci de m'avoir répondu. J'ai essayé de faire une boucle avec Do While mais ça ne fonctionne pas,ça réfléchit sans fin...

Pour faire simple,

J'ai défini le répertoire comme étant la valeur dans B1 à savoir C:\Doc\Retards\
J'ai ensuite fait une boucle sur le secteur qui correspond à une valeur à savoir A1,A2... et je veux que tous les fichiers commençant par ce secteur arrivent dans le même mail


Ci-dessous le fichier excel:

1702667575384.png



Ci-dessous les fichiers à mettre en pj:

1702666904729.jpeg



Ci-dessous la macro actuelle :


Sub Envoi_Mail_Retards()

Dim OutApp As Object
Dim OutMail As Object

On Error Resume Next

Dim i As Integer
Dim repertoire As String

repertoire = Sheets("Mail").Range("B1").Value

For i = 1 To 1000

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

destinataire = Sheets("Mail").Cells(i + 4, 1).Value
Secteur = Sheets("Mail").Cells(i + 4, 2).Value

If Secteur = "" Then
Exit For
End If

With OutMail

.To = destinataire

.Subject = "Retards " & Secteur

'Message du mail :

.body = "Bonjour, " _

& Chr(13) & Chr(10) & Chr(13) & "Ci-joint les retards par site et par commercial" _
& Chr(13) & Chr(10) & Chr(13) & "Cordialement."

'Fichier attachés :

.Attachments.Add repertoire & Secteur & " - Retards.pdf"

.Display 'affiche le mail en brouillon dans Outlook

End With

Set OutMail = Nothing
Set OutApp = Nothing

Next i

End Sub

Merci
 

Discussions similaires

Statistiques des forums

Discussions
314 716
Messages
2 112 159
Membres
111 447
dernier inscrit
jasontantane