+ Reply to Thread
Results 1 to 13 of 13

Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is Sent

  1. #1
    Registered User
    Join Date
    02-20-2009
    Location
    San Francisco, CA
    MS-Off Ver
    Excel 2003
    Posts
    32

    Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is Sent

    Hi,

    I currently have a button then when pressed automatically sends a summary report taken from the first page of Sheet 1.
    Worksheet needs to be protected all the time, but Macro only works on an unprotected worksheet.

    I was wondering what additional code and where to put in so that when
    protected back again after Macro has been executed?

    Here’s the Macro taken from http://www.rondebruin.nl/mail/folder3/mail4.htm

    Please Login or Register  to view this content.
    Anybody???
    Last edited by geepeeone; 03-08-2009 at 04:47 AM.

  2. #2
    Forum Contributor Stuie's Avatar
    Join Date
    09-17-2006
    Location
    Suffolk, UK
    MS-Off Ver
    Excel 2003/2007
    Posts
    432

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    Hi geepeeone.

    To unprotect/protect a worksheet you can use the following code

    Please Login or Register  to view this content.
    This will unprotect non password protected sheets and protect a sheet not using a password. If there is a password then use this.

    Please Login or Register  to view this content.
    Add the unprotect just before you need to edit the sheet and then protect once you have finished editing the sheet.

    Hope this helps,
    There are only 10 types of people in the world:
    Those who understand binary, and those who don't!

  3. #3
    Registered User
    Join Date
    02-20-2009
    Location
    San Francisco, CA
    MS-Off Ver
    Excel 2003
    Posts
    32

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    I'm sorry, but where on the code I've posted should I put those two in?

    I got an "Out Of Range" Error when I put the codes within the Sub.
    Tried it another way and had put the codes inside the Function and it didn't work as well.

    Last edited by geepeeone; 03-02-2009 at 03:59 AM.

  4. #4
    Forum Contributor Stuie's Avatar
    Join Date
    09-17-2006
    Location
    Suffolk, UK
    MS-Off Ver
    Excel 2003/2007
    Posts
    432

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    I have updated the code for you.

    You will need to change the sheet name in the code i have added.

    Please Login or Register  to view this content.

  5. #5
    Registered User
    Join Date
    02-20-2009
    Location
    San Francisco, CA
    MS-Off Ver
    Excel 2003
    Posts
    32

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    I got: "Subscript Out of Range" Result?


    Quote Originally Posted by Stuie View Post
    I have updated the code for you.

    You will need to change the sheet name in the code i have added.

    Please Login or Register  to view this content.

  6. #6
    Forum Contributor Stuie's Avatar
    Join Date
    09-17-2006
    Location
    Suffolk, UK
    MS-Off Ver
    Excel 2003/2007
    Posts
    432

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    On which line of code?

  7. #7
    Registered User
    Join Date
    02-20-2009
    Location
    San Francisco, CA
    MS-Off Ver
    Excel 2003
    Posts
    32

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    Please Login or Register  to view this content.

  8. #8
    Forum Contributor Stuie's Avatar
    Join Date
    09-17-2006
    Location
    Suffolk, UK
    MS-Off Ver
    Excel 2003/2007
    Posts
    432

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    Is the worksheet password protected??

  9. #9
    Registered User
    Join Date
    02-20-2009
    Location
    San Francisco, CA
    MS-Off Ver
    Excel 2003
    Posts
    32

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    No it's not.

  10. #10
    Forum Contributor Stuie's Avatar
    Join Date
    09-17-2006
    Location
    Suffolk, UK
    MS-Off Ver
    Excel 2003/2007
    Posts
    432

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    I cant see any reason why it errors as its a fairly simple peice of code. if theres no password protection then i dont see why not.

    Usually when you have a Subscript Out of Range error it means a range or sheet name is incorrect

  11. #11
    Registered User
    Join Date
    02-20-2009
    Location
    San Francisco, CA
    MS-Off Ver
    Excel 2003
    Posts
    32

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    I've been picking the Wrong Name!?

    I just realized that I have a subroutine on my Worksheet that automatically fills in the name as date when values were keyed in!

    Shucks! So How Do I do this now???

    Please Login or Register  to view this content.
    Last edited by geepeeone; 03-02-2009 at 05:00 AM. Reason: clarity

  12. #12
    Registered User
    Join Date
    02-20-2009
    Location
    San Francisco, CA
    MS-Off Ver
    Excel 2003
    Posts
    32

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    got the solution from RondeBruin

    activesheet.protect
    activesheet.unprotect

  13. #13
    Registered User
    Join Date
    02-23-2011
    Location
    Phoenix
    MS-Off Ver
    Excel 2003
    Posts
    13

    Re: Automatically Unprotect Worksheet Before Email Macro Then Protect After Email is

    This code is what I have been looking for to have people send me a protected spreadsheet with their data inputted in it. Awesome! What I would like to know is there any code to add to this that would put it as either high importance or low importance when it is sent? Because of the high volume of email I need to distinguish at a glance these emails that are sent.

    Sub Mail_Selection_Range_Outlook_Body()

    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object

    Sheets("SheetName").Unprotect

    Set rng = Nothing
    On Error Resume Next
    'Only the visible cells in the selection
    Set rng = Selection.SpecialCells(xlCellTypeVisible)
    'You can also use a range if you want
    'Set rng = Sheets("YourSheet").Range("D4:D12").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0

    If rng Is Nothing Then
    MsgBox "The selection is not a range or the sheet is protected" & _
    vbNewLine & "please correct and try again.", vbOKOnly
    Exit Sub
    End If

    With Application
    .EnableEvents = False
    .ScreenUpdating = False
    End With

    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
    .To = "[email protected]"
    .CC = ""
    .BCC = ""
    .Subject = "This is the Subject line"
    .HTMLBody = RangetoHTML(rng)
    .Send 'or use .Display
    End With
    On Error GoTo 0

    Sheets("SheetName").Protect

    With Application
    .EnableEvents = True
    .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
    End Sub


    Function RangetoHTML(rng As Range)

    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
    .Cells(1).PasteSpecial Paste:=8
    .Cells(1).PasteSpecial xlPasteValues, , False, False
    .Cells(1).PasteSpecial xlPasteFormats, , False, False
    .Cells(1).Select
    Application.CutCopyMode = False
    On Error Resume Next
    .DrawingObjects.Visible = True
    .DrawingObjects.Delete
    On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
    SourceType:=xlSourceRange, _
    Filename:=TempFile, _
    Sheet:=TempWB.Sheets(1).Name, _
    Source:=TempWB.Sheets(1).UsedRange.Address, _
    HtmlType:=xlHtmlStatic)
    .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
    "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
    End Function__________________

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1