Envoi par mail avec le dernier fichier d'un repertoire

  • Initiateur de la discussion Initiateur de la discussion gaby66
  • Date de début Date de début

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 !

gaby66

XLDnaute Occasionnel
Bonjour,

J'ai besoin de votre aide car je trouve pas de solution a mon problème.
J'aimerais envoyer un mail avec un fichier joint, seulement le fichier joint change de nom a chaque fois, j'aimerais donc que ça m'envoi le dernier fichier enregistrer dans un répertoire spécifique.

Actuellement j'ai cette macro qui fonctionne parfaitement a condition que le nom de fichier ne change pas, mais je n'arrive pas a trouver si seulement il change.


Sub ENVOI_MAIL()
'
' ENVOI_MAIL Macro
'
Set oOutlook = CreateObject("Outlook.Application")
Set oNewMail = oOutlook.CreateItem(olMailItem)

With oNewMail
.Attachments.Add "C:/xxx.pdf" '<-Ici le chemin du fichier
.Recipients.Add "xxx@xxx.fr" '<-l'adresse du/des destinataires
.Subject = "xxx"
.Body = "xxx"
.Send '<-.display ou .Send si tu veux l'envoyer directement
End With
'
End Sub


Merci a vous pour votre aide.
 
Re : Envoi par mail avec le dernier fichier d'un repertoire

Bonsoir ,

Voilà une petite routine pour trouve le nom du fichier PDF le plus récent

Attention , il faut adapter le chemin

Code:
Sub test()
Dim DateF As String, fichier As String
fichier = Dir("c:\temp\*.pdf")
mem = "01/01/1980"
Do
DateF = FileDateTime("c:\temp\" & fichier)
If DateDiff("d", DateF, mem) < 0 Then mem = DateF: nom = fichier
fichier = Dir
Loop Until fichier = ""
End Sub
 
Re : Envoi par mail avec le dernier fichier d'un repertoire

Merci 🙂
Pour adapter le chemin c'est pas un soucis, mais cette macro permet de retrouver le dernier fichier d'un répertoire, si je me trompe pas.
Mais vu que je veux l'envoyer par mail, comme la macro que j'ai pu faire ci-dessus.
Comment tu fais pour l'adapter, afin que je puisse mettre des destinataires, objets, texte, avec donc le dernier fichier enregistrer dans un dossier en pièce jointe.

Merci a toi pour ton aide.
 
Re : Envoi par mail avec le dernier fichier d'un repertoire

re

idem sur cette idée de camarchepas(que je salut au passage) et qui de ce fait est plus simple !
Code:
Sub ENVOI_MAIL()

Chemin$ = "E:\Documents\" '<<< ici ton répertoire complet( avec \ au bout exp E:\ ou "E:\Documents\"
EnvoiChemFich$ = LoadCheminFichier$(Chemin$) '<< ce sera le nom complet pour l'envoi
If EnvoiChemFich$ = "" Then MsgBox "Aucun fichier!?", vbExclamation, "envoi": Exit Sub
'ceci pour faire les essais et bien entendu supprimer si ok !?
MsgBox EnvoiChemFich$
End
'-------------------------------------------------------------

Set oOutlook = CreateObject("Outlook.Application")
Set oNewMail = oOutlook.CreateItem(olMailItem)
With oNewMail
 .Attachments.Add EnvoiChemFich$ '<<<< colle le fichier avec son chemin
 .Recipients.Add "dupond.duppond@gmail.fr '<-l'adresse du/des destinataires"
 .Subject = "Parking Xavier"
 .Body = "Tu trouveras en pièce jointe le parking, Xav"
 .Send '<-.display ou .Send si tu veux l'envoyer directement
End With
End Sub

Public Function LoadCheminFichier$(Chemin$)  'ici ne rien modifier !
LoadCheminFichier$ = ""
If Right(Chemin$, 1) <> "\" Then Chemin$ = Chemin$ & "\"
ChemFich$ = Chemin$ & "*.*"
Fichier = Dir(ChemFich$)
Dim Dat As Date
Dat = "01/01/1901"
Do While Fichier > ""
   If FileDateTime(Fichier) > Dat Then Dat = FileDateTime(Fichier): LoadCheminFichier$ = Chemin$ & Fichier
   Fichier = Dir
Loop
End Function
 
Re : Envoi par mail avec le dernier fichier d'un repertoire

Re bonjour les gars,
J'ai un soucis avec cette macro, elle ne fonctionne pas. Sa bloque au niveau de la ligne : (elle se trouve pratiquement a la fin de la macro)

If FileDateTime(Fichier) > Dat Then Dat = FileDateTime(Fichier): LoadCheminFichier$ = Chemin$ & Fichier

Merci pour votre aide
 
Re : Envoi par mail avec le dernier fichier d'un repertoire

Voilà ,

petites corrections


Code:
Sub ENVOI_MAIL()

Chemin$ = "C:\Appli_Excel\" '<<< ici ton répertoire complet( avec \ au bout exp E:\ ou "E:\Documents\"
EnvoiChemFich$ = LoadCheminFichier$(Chemin$) '<< ce sera le nom complet pour l'envoi
If EnvoiChemFich$ = "" Then MsgBox "Aucun fichier!?", vbExclamation, "envoi": Exit Sub
'ceci pour faire les essais et bien entendu supprimer si ok !?
MsgBox EnvoiChemFich$
End
'-------------------------------------------------------------

Set oOutlook = CreateObject("Outlook.Application")
Set oNewMail = oOutlook.CreateItem(olMailItem)
With oNewMail
 .Attachments.Add EnvoiChemFich$ '<<<< colle le fichier avec son chemin
 .Recipients.Add "dupond.duppond@gmail.fr '<-l'adresse du/des destinataires"
 .Subject = "Parking Xavier"
 .Body = "Tu trouveras en pièce jointe le parking, Xav"
 .Send '<-.display ou .Send si tu veux l'envoyer directement
End With
End Sub

Public Function LoadCheminFichier$(Chemin$)  'ici ne rien modifier !
LoadCheminFichier$ = ""
If Right(Chemin$, 1) <> "\" Then Chemin$ = Chemin$ & "\"
Fichier = Dir(ChemFich$ & "*.*")
Dim Dat As Date
Dat = "01/01/1901"
Do While Fichier > ""
  DateFiche = FileDateTime(ChemFich$ & Fichier)
   If DateFiche > Dat Then Dat = FileDateTime(Fichier): LoadCheminFichier$ = Chemin$ & Fichier
   Fichier = Dir
Loop
End Function
 
- 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

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
817
Réponses
2
Affichages
809
Réponses
6
Affichages
739
Retour