Sélection du fichier Excel le plus récent pour envoi par mail

Bonjour à tous,

Je souhaite envoyer un fichier EXCEL via OUTLOOK. La procédure ci-dessous marche correctement, mais je voudrais que ce soit le fichier le plus récent du répertoire "RETOUR FICHIER" qui soit sélectionné pour l'envoi.

Merci par avance pour votre retour.

Bonne soirée.

Sub Envoyer_Mail_Outlook()

Dim ObjOutlook As New Outlook.Application

Dim oBjMail

Dim Nom_Fichier As String

Set ObjOutlook = New Outlook.Application

Set oBjMail = ObjOutlook.CreateItem(olMailItem)

'---------------------------------------------------------

Nom_Fichier = "C:\Production\Retour FICHIER\BPC 06 01 2020.xlsx"

If Nom_Fichier = "" Then Exit Sub

'---------------------------------------------------------

With oBjMail

.To = "polop@entreprise.com" ' le destinataire

.Subject = "BPC" ' l'objet du mail

.Body = "Bonjour, Vous trouverez ......"

.Attachments.Add Nom_Fichier

.Display '

.Send

End With

ObjOutlook.Quit

Set oBjMail = Nothing

Set ObjOutlook = Nothing

End Sub

Salut SAM,

à tester

Sub Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String, Dossier As String, Dernier_Fichier As String
Dim Dernier_Modi As Date, Date_Modi As Date

Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---------------------------------------------------------

Dossier = "C:\Production\Retour FICHIER\"

Nom_Fichier = Dir(Dossier & "*.xlsx")

Do While Nom_Fichier <> vbNullString
    Date_Modi = FileDateTime(Dossier & Nom_Fichier)
    If Dernier_Modi < Date_Modi Then
        Dernier_Modi = Date_Modi
        Dernier_Fichier = Nom_Fichier
    End If
    Nom_Fichier = Dir()
Loop

If Dernier_Fichier = "" Then Exit Sub
'---------------------------------------------------------
With oBjMail
.To = "polop@entreprise.com" ' le destinataire
.Subject = "BPC" ' l'objet du mail
.Body = "Bonjour, Vous trouverez ......"
.Attachments.Add Dernier_Fichier
.Display '
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub

Bonne soirée

Merci m3ellem1 pour la réponse.

Pour l'instant cela n'a pas fonctionné.

Erreur d'exécution "Ce chemin d'accès n'existe pas. Assurez-vous qu'il est correct".

.Attachments.Add Nom_Fichier

Concrètement le fichier à envoyer par mail s'intitule BPC DD MM YYYY

Le chemin d'accès est le suivant :

C:\Production\Retour FICHIER\

je vais revérifier la procédure. Le chemin d'accès me semble correct.

En tout cas, merci pour votre aide.

CDT

Bonjour,

Il me semble que le code de m3ellem1 ne stipule pas :

.Attachments.Add Nom_Fichier

mais :

.Attachments.Add Dernier_Fichier

Bonjour à tous,

encore une petite correction:

.Attachments.Add Dossier & Dernier_Fichier

Salut SAM,

merci pijaku

merci Sequoyah bien vu

SAM essaie de copier toute la macro et la tester:

Sub Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String, Dossier As String, Dernier_Fichier As String
Dim Dernier_Modi As Date, Date_Modi As Date

Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---------------------------------------------------------

Dossier = "C:\Production\Retour FICHIER\"

Nom_Fichier = Dir(Dossier & "*.xlsx")

Do While Nom_Fichier <> vbNullString
    Date_Modi = FileDateTime(Dossier & Nom_Fichier)
    If Dernier_Modi < Date_Modi Then
        Dernier_Modi = Date_Modi
        Dernier_Fichier = Nom_Fichier
    End If
    Nom_Fichier = Dir()
Loop

If Dernier_Fichier = "" Then Exit Sub
'---------------------------------------------------------
With oBjMail
.To = "polop@entreprise.com" ' le destinataire
.Subject = "BPC" ' l'objet du mail
.Body = "Bonjour, Vous trouverez ......"
.Attachments.Add Dossier & Dernier_Fichier
.Display '
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub

@++

Rechercher des sujets similaires à "selection fichier recent envoi mail"