Microsoft 365 Envoi mail avec plusieurs PJ vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
687
Réponses
2
Affichages
319
Réponses
3
Affichages
404
Retour