Salut à tous!
Cette macro me permet d'envoyer la copie de la feuil1 de mon fichier text.xls.
Cette macro est dans le fichier test.xls.
Le pb, c'est lorsque j'envoie le mail il me renome le fichier test.xls en PlanificationSxx , alors que je voudrais simplement qu'il nome le fichier qu'il cré en temporaire, ce qu'il fait pour l'envoi.
Donc ma question:
Comment envoyer le fichier (ce qu'il fait très bien ace le nom comme y faut) sans renommer le fichier test.xls
Sub OBS()
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sujet As String
Dim S As String
S = Feuil1.Range("E2").Value
Set Source = Nothing
On Error Resume Next
Set Source = Range("A1:F200").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "The source is not a range or the sheet is protected, please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set wb = ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & "\"
TempFileName = "PlanificationS" & S
Sujet = "Planification S" & S
FileExtStr = ".xls"
With Dest
SaveAs TempFilePath & TempFileName & FileExtStr
On Error Resume Next
.Close SaveChanges:=False
End With
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr
On Error Resume Next
Dim appOutlook As Outlook.Application
Dim message As Outlook.MailItem
Dim myRecipient As Object
Dim email As String
End With
'Crée une session Microsoft Outlook
Set appOutlook = CreateObject("outlook.application")
'Crée un nouveau message
Set message = appOutlook.CreateItem(olMailItem)
' initialisation de variables
email = "aert@boial.fr"
With message
.Subject = Sujet
.body = "Bonjour," & vbCr & vbCr
.Recipients.Add (email)
.attachments.Add TempFilePath & TempFileName & FileExtStr
.Send
End With
Kill TempFilePath & TempFileName & FileExtStr
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Merci
Cette macro me permet d'envoyer la copie de la feuil1 de mon fichier text.xls.
Cette macro est dans le fichier test.xls.
Le pb, c'est lorsque j'envoie le mail il me renome le fichier test.xls en PlanificationSxx , alors que je voudrais simplement qu'il nome le fichier qu'il cré en temporaire, ce qu'il fait pour l'envoi.
Donc ma question:
Comment envoyer le fichier (ce qu'il fait très bien ace le nom comme y faut) sans renommer le fichier test.xls
Sub OBS()
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sujet As String
Dim S As String
S = Feuil1.Range("E2").Value
Set Source = Nothing
On Error Resume Next
Set Source = Range("A1:F200").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "The source is not a range or the sheet is protected, please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set wb = ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & "\"
TempFileName = "PlanificationS" & S
Sujet = "Planification S" & S
FileExtStr = ".xls"
With Dest
SaveAs TempFilePath & TempFileName & FileExtStr
On Error Resume Next
.Close SaveChanges:=False
End With
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr
On Error Resume Next
Dim appOutlook As Outlook.Application
Dim message As Outlook.MailItem
Dim myRecipient As Object
Dim email As String
End With
'Crée une session Microsoft Outlook
Set appOutlook = CreateObject("outlook.application")
'Crée un nouveau message
Set message = appOutlook.CreateItem(olMailItem)
' initialisation de variables
email = "aert@boial.fr"
With message
.Subject = Sujet
.body = "Bonjour," & vbCr & vbCr
.Recipients.Add (email)
.attachments.Add TempFilePath & TempFileName & FileExtStr
.Send
End With
Kill TempFilePath & TempFileName & FileExtStr
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Merci