Hi there!
I am relatively new to a company that are using macros as part of some key processes, I have been tasked with fixing them whenever there is an issue because my predecessor created the macro, but my VBA knowledge is minimal so any help with this would be massively appreciated!
The file in question baisically sends out the spreadsheet as an attachment to the same email everytime as well as printing off a hard copy.
There have been some new customer service reps (main users of this file) joining the company and for some reason the email and printing part of the macro have not been working for them only.
Below is the code concerned:
Thanks!
kconn
I am relatively new to a company that are using macros as part of some key processes, I have been tasked with fixing them whenever there is an issue because my predecessor created the macro, but my VBA knowledge is minimal so any help with this would be massively appreciated!
The file in question baisically sends out the spreadsheet as an attachment to the same email everytime as well as printing off a hard copy.
There have been some new customer service reps (main users of this file) joining the company and for some reason the email and printing part of the macro have not been working for them only.
Below is the code concerned:
Code:
Range("A1").Select
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim OutApp As Object
Dim OutMail As Object
Set wb1 = ActiveWorkbook
If Val(Application.Version) >= 12 Then
If wb1.FileFormat = 51 And wb1.HasVBProject = True Then
MsgBox "There is VBA code in this xlsx file. There will" & vbNewLine & _
"be no VBA code in the file you send. Save the" & vbNewLine & _
"file as a macro-enabled (. Xls) and then retry the macro.", vbInformation
Exit Sub
End If
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
' Make a copy of the file.
' If you want to change the file name then change only TempFileName variable.
TempFilePath = Environ$("temp") & "\"
TempFileName = "Pickup Request for " & Range("D13").Value & Range("D15").Value & " " & Format(Now, "dd-mmm-yy h-mm-ss")
FileExtStr = "." & LCase(Right(wb1.Name, _
Len(wb1.Name) - InStrRev(wb1.Name, ".", , 1)))
wb1.SaveCopyAs TempFilePath & TempFileName & FileExtStr
Set wb2 = Workbooks.Open(TempFilePath & TempFileName & FileExtStr)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
' Change the mail address and subject in the macro before you run this procedure.
With OutMail
.To = "[EMAIL="despatch.ak@company.co.nz"]despatch.ak@company.co.nz[/EMAIL]"
.CC = "[EMAIL="shelley.surname@company.co.nz"]shelley.surname@company.co.nz[/EMAIL]"
.BCC = ""
.Subject = "Product Pickup - " & Range("D13").Value & Range("D15").Value
.Body = "This form has been also been printed, please give it to the appropriate driver for collection ASAP."
.Attachments.Add wb2.FullName
' You can add other files by uncommenting the following line.
'.Attachments.Add ("C:\test.txt")
' In place of the following statement, you can use ".Display" to
' display the mail.
.Send
End With
On Error GoTo 0
wb2.Close SaveChanges:=False
' Delete the file.
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Range("A1").Select
MsgBox ("Document Emailed to [EMAIL="Despatch.ak@company.co.nz"]Despatch.ak@company.co.nz[/EMAIL] & [EMAIL="Shelley.surname@company.co.nz"]Shelley.surname@company.co.nz[/EMAIL]")
Thanks!
kconn