View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
David David is offline
external usenet poster
 
Posts: 1,560
Default Emailing Worksheet with VBA Code

Thank you very much. I had to find a solution and I finally figured out how
Ron's code worked, I had it in the wrong place. You're right though, it was
simple, but the example and instructions were terrible confusing. Took me
four hours last night to resolve the issue. Then, Ron's code just copies
everything and then paste it back on top of itself, wiping out the variables
on that sheet. That was no good. So what I did was add a formatted sheet that
is an exact copy of the source sheets, hide it, and unhide it in the macro,
copy the target sheet to the copy sheet as paste values and email that
worksheet, and then hide it again, that way my original work is not affected.
Thanks again!!

" wrote:

I experianced a similar issue with this in the past...Ron's code, no
offense, is confusing and a simple code like below will get the job
done...If you need a single sheet to be sent then consider writting a
macro to copy the sheet to a new workbook and then name the work book
something in the macro and then use the code below to send the file...

Sub Email()
ActiveWorkbook.SendMail "
End Sub



David wrote:
I'm having a tough time figuring out how to email a single worksheet that
used the PriorSheet Function. I've tried Ron's email and tips on a single
sheet, but when I email the sheets with the priorsheet function, I get all
errors in the cells. The email works just fine, just need to get the real
data pasted into the email copy. I really need to fix this before tomorrow
morning. Thanks for any help! Here's the code I'm using with Ron's in there
notated:

Sub Mail_ActiveSheet()
Dim wb As Workbook
Dim strdate As String
Dim FileNameEmail As String
Dim Location As String
Dim LocationNum As String
Dim ForDate As Date
Dim MyArr As Variant
MyArr = Sheets("Setup").Range("Email")

strdate = Format(Now, "mm-dd-yy")
Application.ScreenUpdating = False

Location = ActiveSheet.Range("B3")
LocationNum = ActiveSheet.Range("B4")
ForDate = ActiveSheet.Range("I4")


FileNameEmail = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)

Set wb = ActiveWorkbook
With wb
'Ron's Code Starts Here
ActiveSheet.Copy
Cells.Copy
Cells.PasteSpecial xlPasteValues
Cells(1).Select
Worksheets(1).Select
Application.CutCopyMode = False
'Ron's Code Stops Here

.SaveAs "Daily " & FileNameEmail & " saved on " & strdate & ".xls"
.SendMail MyArr, "Daily DMR from " & Location & "-" & LocationNum &
" for " & ForDate
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
Application.ScreenUpdating = True
End Sub