VBA Renommer fichier Excel

Bonjour,

J'utilise une macro sur un fichier excel (appelé A) pour générer un email contenant deux pièces jointes, un pdf et un fichier excel (appelé B) tout deux enregistré en local.

J'aimerais que le fichier excel en local (le B) qui est joint dans mon email sois renommé en fonction de contenu d'une cellule présente dans mon fichier excel contenant ma macro (le A).

Ma macro:

Sub EnvoyerEmail_known()

'définition des variables

Dim oOutlook As Outlook.Application

Dim WasOutlookOpen As Boolean

Dim oMailItem As Outlook.MailItem

Dim Body As String

Dim Subject As Variant

PreparerOutlook oOutlook

Set oMailItem = oOutlook.CreateItem(0)

With oMailItem

.To = XXX

.CC = "XXX"

.Subject = Worksheets("XXX").Range("E3").Value

.Body = Worksheets("XXX").Range("A18").Value

.Attachments.Add ("C:\Users\XXX\Documents\PROJECTS\XXX\XXX.pdf")

.Attachments.Add ("C:\Users\XXX\Documents\PROJECTS\XXX\A.xlsx") : Fichier à renommer

.Display

End With

If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing

If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing

Exit Sub

EnvoyerEmailErreur:

If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing

If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing

MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur"

End Sub

Merci

Bonjour alexis0906,

veux-tu renommer le fichier original avant de l'envoyer ou bien faire une copie de celui-ci sous un autre nom avant de l'envoyer ?

Bonjour, merci de votre réponse,

J'ai trouvé la solution entre temps:

Sub EnvoyerEmail()

Dim oOutlook As Outlook.Application

Dim WasOutlookOpen As Boolean

Dim oMailItem As Outlook.MailItem

Dim Body As String

Dim Subject As Variant

Dim fichier As String

Dim Nomfichierexcel As String

Dim Chemin As String

Nomfichierexcel = Worksheets("XXXXX").Range("G1").Value + ".xlsx"

'If (

'Kill "C:\Users\XXXXX\Documents\PROJECTS\XXXXX\XXXXXXX\temp.xlsx"

FileCopy "C:\Users\XXXX\Documents\PROJECTS\XXXXXX\XXXXXX.xlsx", "C:\Users\XXXXXXXX\Documents\PROJECTS\XXXXX\XXXXX\temp.xlsx"

Name "C:\Users\XXXX\Documents\PROJECTS\XXXX\XXXXXXX\temp.xlsx" As "C:\Users\XXXXXXX\Documents\PROJECTS\XXXX\XXXXX\" + Nomfichierexcel

PreparerOutlook oOutlook

Set oMailItem = oOutlook.CreateItem(0)

With oMailItem

.To = Destinataire

.CC = "XXXX@XXX.com"

.Subject = Worksheets("RFQ").Range("E3").Value

.Body = Worksheets("TEXTE_known").Range("A18").Value

.Attachments.Add ("C:\Users\daveal\Documents\PROJECTS\RFQ\XXXXXX.pdf")

.Attachments.Add "C:\Users\daveal\Documents\PROJECTS\RFQ\XXXXXXXX\" + Nomfichierexcel

.Display

End With

'nettoyage...

If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing

If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing

Exit Sub

EnvoyerEmailErreur:

If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing

If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing

MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur"

End Sub

Private Sub PreparerOutlook(ByRef oOutlook As Object)

On Error GoTo PreparerOutlookErreur

On Error Resume Next

'vérification si Outlook est ouvert

Set oOutlook = GetObject(, "Outlook.Application")

If (Err.Number <> 0) Then 'si Outlook n'est pas ouvert, une instance est ouverte

Err.Clear

Set oOutlook = CreateObject("Outlook.Application")

Else 'si Outlook est ouvert, l'instance existante est utilisée

Set oOutlook = GetObject("Outlook.Application")

oOutlook.Visible = True

End If

Exit Sub

PreparerOutlookErreur:

MsgBox "Une erreur est survenue lors de l'exécution de PreparerOutlook()..."

End Sub

Rechercher des sujets similaires à "vba renommer fichier"