Notifications
Clear all

BeforeSave não Funciona

4 Posts
2 Usuários
0 Reactions
1,159 Visualizações
(@carloshvb)
Posts: 99
Trusted Member
Topic starter
 

Bom dia Pessoal,

Estou tentando criar um procedimento para bloquear/impedir as opções de salvar a planilha caso ela seja "Somente Leitura"

Para isso, usei o código abaixo, o problema é que não funciona.

Private Sub Workbook_BeforeSave(ByVal SaveUI As Boolean, Cancel As Boolean)
    
Dim wBook As Workbook
Set wBook = ThisWorkbook

If wBook.ReadOnly Then
    MsgBox "Este documento já está aberto por outro usuário e não pode ser salvo!"
    Cancel = True 'Cancels any request to save the file
    Exit Sub
Else
    ActiveWorkbook.Save
End If
   
End Sub

Ele exibe as mensagem de salvar normalmente, pedindo para o usuário "Salvar como...", não exibe nem mesmo a MsgBox do código.

O que posso fazer para dar certo.

Desde já obrigado pela ajuda.

Carlos

 
Postado : 09/01/2017 6:40 am
(@carloshvb)
Posts: 99
Trusted Member
Topic starter
 

Ninguém mesmo, uma ideiazinha pra dar uma luz please!

 
Postado : 18/01/2017 5:26 am
(@walter29)
Posts: 9
Active Member
 

Olá amigo, boa noite!

Olhando o seu código eu notei que só faltou a condição dentro do IF, veja se dessa forma funciona.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If ThisWorkbook.ReadOnly = True Then

MsgBox "Este documento já está aberto por outro usuário e não pode ser salvo!"
Cancel = True 'Cancels any request to save the file
Exit Sub

Else
ActiveWorkbook.Save
End If

End Sub

 
Postado : 18/01/2017 11:25 pm
(@carloshvb)
Posts: 99
Trusted Member
Topic starter
 

Walter, obrigado por responder, mas a solução que encontrei foi tirar as declarações de variáveis da mesma forma que você fez, mas sem declarar condição mesmo, ó código estava certo, já funcionava em outras rotinas menos na BeforeSave.

Private Sub Workbook_BeforeSave(ByVal SaveUI As Boolean, Cancel As Boolean)
    If ThisWorkbook.ReadOnly Then
        MsgBox "Este documento é 'Somente Leitura' e não pode ser salvo!"
        Cancel = True
    End If
End Sub
 
Postado : 24/01/2017 12:46 pm