Notifications
Clear all

desabilitar apenas o salvar do display alerts

7 Posts
3 Usuários
0 Reactions
1,785 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pesquisei no forum e não encontrei , não sei se usei os argumentos errados...

Usamos uma planilha XLTM que possui um código que ao clicar salvar só me da a opção de salvar em XLSM. (perfeito)

Porem quando dou ALT+F4 ou clico no X ela me pergunta : salvar - não salvar - cancelar , neste momento meu código não é respeitado , permitindo que se salve em qualquer formato.

Existe como quando der ALT+F4 ou clicar no X a msg apareça sem o salvar? não salvar - cancelar , e se possivel com uma msg na mesma caixa informando que para salvar clicar no "disquete"?

 
Postado : 15/09/2014 1:26 pm
(@bilokas)
Posts: 168
Reputable Member
 

Cole o seguinte código em EstaPasta_de_Trabalho:

Private Sub Workbook_Terminate()
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.Quit
End Sub
 
Postado : 15/09/2014 1:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Uma vez que já tem o codigo, utilize-o nos Eventos do WorkBook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

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

[]s

 
Postado : 15/09/2014 1:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Este é o código que uso pra salvamento ( esta em Esta Pasta de Trabalho)

O que preciso é : se fechar pelo X ou ALT+F4 só aparecer : NÂO SALVAR e CANCELAR ; naquela "caixinha excel"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim FileNameVal As String
    Dim strName As String

    If SaveAsUI Then
        
        FileNameVal = Application.GetSaveAsFilename(strName, "Excel Macro-Enabled Workbook (*.xlsm), *.xlsm")
        Cancel = True
        
        If FileNameVal = "Falso" Then 'User pressed cancel
            Exit Sub
        End If
        
        Application.EnableEvents = False
            
            If Right(ThisWorkbook.Name, 5) <> ".xlsm" Then
                ThisWorkbook.SaveAs filename:=FileNameVal, FileFormat:=xlOpenXMLWorkbookMacroEnabled
            
            Else
                ThisWorkbook.SaveAs filename:=FileNameVal, FileFormat:=xlOpenXMLWorkbookMacroEnabled
            End If
            
        Application.EnableEvents = True
        
    End If

End Sub
 
Postado : 15/09/2014 4:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

ACHO QUE COMPLIQUEI.
O código é para saber o que uso quando clico em salvar(disquete).

o que preciso é informar ao usuario que ele nao pode salvar ao sair, dando a ele a oportunidade de cancelar o comando, permanecendo com a plan aberta ou sair sem salvar.

 
Postado : 16/09/2014 6:25 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Nesse caso, experimente colocar este código em Estapasta_de_Trabalho:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim resposta As Long

resposta = MsgBox("você não pode salvar ao sair. Deseja cancelar e salvar?", vbYesNo)

If resposta = 7 Then '7 = não
    Workbook.Saved = True
    Application.DisplayAlerts = False
    Exit Sub
Else
    Cancel = True
    Exit Sub
End If

End Sub

Abs

 
Postado : 16/09/2014 6:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

muitissimo obrigado.
Foi perfeito ; muito obrigado mesmo.

Para fechar preciso de ajuda nesse tópico.

viewtopic.php?f=10&t=12991

 
Postado : 16/09/2014 8:01 am