Wpis z mikrobloga

Czy ktoś pomoże nieogarniającemy poprawić kod?

Znalazłem w necie kod na automatyczne wysyłanie pliku excela w załączniku przez outlooka. Wszystko pięknie działa ale chciałbym żeby nazwa tego pliku pojawiała się w temacie wiadomości.
Mam też makro do przeróbki excela na pdf i wysłąnie go mailem i tam nazwę wczytuje mi do tematu ale nie potrafię tego przenieś do pierwszego przypadku.
Może ktoś podpowiedzieć co trzeba dopisać do kodu żeby tą nazwę wczytało?

Sub SendWorkSheet()
'
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "biuro@xxx.pl"
.CC = ""
.BCC = ""
.Subject = ""
.Body = ""
.Attachments.Add Wb2.FullName
.Display
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

#vba
  • 6
@rrobot:

Ten od wysyłania PDFa który podpisuje temat nazwą pliku.

Sub SaveAsPDFandSend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range
Dim xPath As String
Set xSht = ActiveSheet
xPath = "E:\Oferty\2022" 'here "workshet to pdf" is the destination folder to save the pdf files
xFolder = xPath + "\" + ThisWorkbook.Name