Results 1 to 4 of 4

Macro Button disabled in protected worksheet

Threaded View

  1. #1
    Registered User
    Join Date
    05-26-2016
    Location
    Berks Endland
    MS-Off Ver
    2010
    Posts
    5

    Macro Button disabled in protected worksheet

    Hi Guys

    I have managed to get a macro working that sends an email with attachment from my spreadsheet, with a little help from you very kind people.

    It all works great until I protect the worksheet and it prevents the macro from working.
    I've tried using Activesheet.unprotect ad Activesheet.protect at either and, but still no joy. Can anyone advise?

    Apologies if it is obvious, but I'm pretty new to VBA.

    Thanks in advance, VBA is below -

    Sub Mail_Range()
    ' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.
        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 OutApp As Object
        Dim OutMail As Object
    
        Set Source = Nothing
        On Error Resume Next
        Set Source = Range("B1:R1000").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 = "Selection of " & wb.Name & " " _
                     & Format(Now, "dd-mmm-yy h-mm-ss")
    
        If Val(Application.Version) < 12 Then
            ' You are using Excel 2000 or 2003.
            FileExtStr = ".xls": FileFormatNum = -4143
        Else
            ' You are using Excel 2007 or 2010.
            FileExtStr = ".xlsx": FileFormatNum = 51
        End If
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
    
        With Dest
            .SaveAs TempFilePath & TempFileName & FileExtStr, _
                    FileFormat:=FileFormatNum
            On Error Resume Next
            With OutMail
                .To = "random@rand.com"
                .CC = ""
                .BCC = ""
                .Subject = "Special Pricing Form for " & Range("D1")
                .Body = "Hi Guys" & Chr(13) & Chr(13) & "Please see attached Special Pricing form for " & Range("D1") & Chr(13) & Chr(13) & "Many Thanks" & Chr(13) & Range("G1")
                .Attachments.Add Dest.FullName
                ' You can add other files by uncommenting the following statement.
                '.Attachments.Add ("C:\test.txt")
                ' In place of the following statement, you can use ".Display" to
                ' display the e-mail message.
                .Send
            End With
            On Error GoTo 0
            .Close SaveChanges:=False
        End With
    
        Kill TempFilePath & TempFileName & FileExtStr
    
        Set OutMail = Nothing
        Set OutApp = Nothing
    
        With Application
            .ScreenUpdating = True
            .EnableEvents = True
        End With
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    End Sub
    Last edited by Sam Hatch; 05-26-2016 at 12:12 PM.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. [SOLVED] Disable or hide a recorded macro button when clicked if the worksheet is protected
    By sai19 in forum Excel Programming / VBA / Macros
    Replies: 2
    Last Post: 12-31-2014, 12:14 PM
  2. [SOLVED] Macro to keep count of click of button on protected worksheet
    By CharlieZangel in forum Excel Programming / VBA / Macros
    Replies: 4
    Last Post: 06-19-2012, 03:37 PM
  3. Disabled VBE and Macro button on workbook open
    By contaminated in forum Excel General
    Replies: 1
    Last Post: 01-16-2010, 02:44 AM
  4. macro assigned to a form control button in a protected worksheet
    By lee_har in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 10-09-2009, 02:29 AM
  5. Disabled Absolute/Relative Macro Button
    By J Shrimps, Jr. in forum Excel Programming / VBA / Macros
    Replies: 4
    Last Post: 04-05-2006, 03:15 PM
  6. Why Is The Macro Edit Button Disabled?
    By KelleyS in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 01-20-2006, 07:50 PM

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