ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Disable Save on Tool Bar? (https://www.excelbanter.com/excel-programming/370428-disable-save-tool-bar.html)

TimN

Disable Save on Tool Bar?
 
Is it possible to disable and hide the save button from the tool bar as well
as disable Ctrl + S and Save As?

I want the command button I have built to be the only method available to
save the file.

Thanks for any suggestions.

Peter T

Disable Save on Tool Bar?
 
You could customize toolbars to remove those menus and assign shortcut
Ctrl-S to your own macro.

Another approach might be to trap the save event at application level in
your main workbook or an addin and process, eg

' in a Class1 change name later to say clsApp
Public WithEvents xlApp As Excel.Application

Private Sub xlApp_WorkbookBeforeSave(ByVal Wb As Workbook, _
ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
On Error GoTo errH

'perhaps first some test if Wb properties are relevant

Set ws = Wb.Worksheets("Sheet1")
' will error & run to errH if no Sheet1

If ws.Range("A1") = 111 Then
'do nothing, normal save will occur
ElseIf ws.Range("A1") = 222 Then
'stop normal save
'change 222 333 and save
'prevent events running while changing cell
' & doing own save
Cancel = True
xlApp.EnableEvents = False
ws.Range("A1") = 333
Wb.Save
Else
Cancel = True ' stop the save
MsgBox "Sheet1:A1 wrong", , "Save cancelled"
End If

errH:
xlApp.EnableEvents = True
End Sub

' in a normal module
Dim clAppEvents As Class1

Sub auto_open()
'manually run to test

Set clAppEvents = New Class1
Set clAppEvents.xlApp = Application
End Sub

Regards,
Peter T


"TimN" wrote in message
...
Is it possible to disable and hide the save button from the tool bar as

well
as disable Ctrl + S and Save As?

I want the command button I have built to be the only method available to
save the file.

Thanks for any suggestions.




Tom Ogilvy

Disable Save on Tool Bar?
 
Just to add,

if this functionality is for only one workbook, you can just use the
workbook level beforesave event.

--
Regards,
Tom Ogilvy


"Peter T" wrote:

You could customize toolbars to remove those menus and assign shortcut
Ctrl-S to your own macro.

Another approach might be to trap the save event at application level in
your main workbook or an addin and process, eg

' in a Class1 change name later to say clsApp
Public WithEvents xlApp As Excel.Application

Private Sub xlApp_WorkbookBeforeSave(ByVal Wb As Workbook, _
ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
On Error GoTo errH

'perhaps first some test if Wb properties are relevant

Set ws = Wb.Worksheets("Sheet1")
' will error & run to errH if no Sheet1

If ws.Range("A1") = 111 Then
'do nothing, normal save will occur
ElseIf ws.Range("A1") = 222 Then
'stop normal save
'change 222 333 and save
'prevent events running while changing cell
' & doing own save
Cancel = True
xlApp.EnableEvents = False
ws.Range("A1") = 333
Wb.Save
Else
Cancel = True ' stop the save
MsgBox "Sheet1:A1 wrong", , "Save cancelled"
End If

errH:
xlApp.EnableEvents = True
End Sub

' in a normal module
Dim clAppEvents As Class1

Sub auto_open()
'manually run to test

Set clAppEvents = New Class1
Set clAppEvents.xlApp = Application
End Sub

Regards,
Peter T


"TimN" wrote in message
...
Is it possible to disable and hide the save button from the tool bar as

well
as disable Ctrl + S and Save As?

I want the command button I have built to be the only method available to
save the file.

Thanks for any suggestions.





TimN

Disable Save on Tool Bar?
 
Could you expand further on that thought?
This is for one workbook that will be distributed to several users.

"Tom Ogilvy" wrote:

Just to add,

if this functionality is for only one workbook, you can just use the
workbook level beforesave event.

--
Regards,
Tom Ogilvy


"Peter T" wrote:

You could customize toolbars to remove those menus and assign shortcut
Ctrl-S to your own macro.

Another approach might be to trap the save event at application level in
your main workbook or an addin and process, eg

' in a Class1 change name later to say clsApp
Public WithEvents xlApp As Excel.Application

Private Sub xlApp_WorkbookBeforeSave(ByVal Wb As Workbook, _
ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
On Error GoTo errH

'perhaps first some test if Wb properties are relevant

Set ws = Wb.Worksheets("Sheet1")
' will error & run to errH if no Sheet1

If ws.Range("A1") = 111 Then
'do nothing, normal save will occur
ElseIf ws.Range("A1") = 222 Then
'stop normal save
'change 222 333 and save
'prevent events running while changing cell
' & doing own save
Cancel = True
xlApp.EnableEvents = False
ws.Range("A1") = 333
Wb.Save
Else
Cancel = True ' stop the save
MsgBox "Sheet1:A1 wrong", , "Save cancelled"
End If

errH:
xlApp.EnableEvents = True
End Sub

' in a normal module
Dim clAppEvents As Class1

Sub auto_open()
'manually run to test

Set clAppEvents = New Class1
Set clAppEvents.xlApp = Application
End Sub

Regards,
Peter T


"TimN" wrote in message
...
Is it possible to disable and hide the save button from the tool bar as

well
as disable Ctrl + S and Save As?

I want the command button I have built to be the only method available to
save the file.

Thanks for any suggestions.





TimN

Disable Save on Tool Bar?
 
Tom,

After being pointed in this direction (Beforesave event) I found how to make
it work. Thanks! Now on to the next problem.

Tim

"Tom Ogilvy" wrote:

Just to add,

if this functionality is for only one workbook, you can just use the
workbook level beforesave event.

--
Regards,
Tom Ogilvy


"Peter T" wrote:

You could customize toolbars to remove those menus and assign shortcut
Ctrl-S to your own macro.

Another approach might be to trap the save event at application level in
your main workbook or an addin and process, eg

' in a Class1 change name later to say clsApp
Public WithEvents xlApp As Excel.Application

Private Sub xlApp_WorkbookBeforeSave(ByVal Wb As Workbook, _
ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
On Error GoTo errH

'perhaps first some test if Wb properties are relevant

Set ws = Wb.Worksheets("Sheet1")
' will error & run to errH if no Sheet1

If ws.Range("A1") = 111 Then
'do nothing, normal save will occur
ElseIf ws.Range("A1") = 222 Then
'stop normal save
'change 222 333 and save
'prevent events running while changing cell
' & doing own save
Cancel = True
xlApp.EnableEvents = False
ws.Range("A1") = 333
Wb.Save
Else
Cancel = True ' stop the save
MsgBox "Sheet1:A1 wrong", , "Save cancelled"
End If

errH:
xlApp.EnableEvents = True
End Sub

' in a normal module
Dim clAppEvents As Class1

Sub auto_open()
'manually run to test

Set clAppEvents = New Class1
Set clAppEvents.xlApp = Application
End Sub

Regards,
Peter T


"TimN" wrote in message
...
Is it possible to disable and hide the save button from the tool bar as

well
as disable Ctrl + S and Save As?

I want the command button I have built to be the only method available to
save the file.

Thanks for any suggestions.






All times are GMT +1. The time now is 11:37 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com