Excel Vba

WorkbookBeforeSave

Primeiro devemos criar um módulo de classe e renome-lo para AppEventCls.

1) Entre no VBA depois em Inserir>Módulo de classe

2) Click no módulo para seleciona-lo depois nas Propriedades do módulo altere o nome para AppEventCls

3) Ao final o resultado deve ser como a a imagem abaixo.

De um duplo click no módulo de classe, copie e cole o código abaixo.

Option Explicit
'Modulo de classe AppEventCls
Public WithEvents myApp As Application
Private Sub myApp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
    MsgBox Wb.Name & ", foi salvo - Por Evento Application"
End Sub

Pronto!!! Já expandimos esse evento para todo o objeto application, mas agora vamos precisar inicializar esse evento para que comece a ser utilizado, para isso vamos criar uma rotina em um módulo.

1) Entre no VBA depois em Inserir>Módulo

2) Ao final o resultado deve ser como a a imagem abaixo.

De um duplo click no módulo, copie e cole o código abaixo.

Option Explicit
'Declarando uma variavel que vai assumir os eventos do módulo
Dim myAppCls As New AppEventCls
Sub InitializeAppEvent()
    Set myAppCls.myApp = Application
End Sub

Execute o código acima e a cada vez que salvar uma pasta de trabalho no mesmo objeto application ou seja na mesma instancia desse Excel mas não se limitando a uma unica pasta de trabalho (workbook) sera exibida uma mensagem.

Nesse exemplo mostrei como dar o start manualmente por uma rotina, mas nada impede a execução por um evento padrão tipo open.

Clique aqui para baixar o arquivo desse passo a passo.

6 comentários sobre “WorkbookBeforeSave

  • Getting into my daily sessions used to be a hassle but this platform makes the login process a breeze. I love how they keep their promotions updated regularly without any confusing rules. My wallet feels great and the withdrawals hit my account super quick. spin96login

    Resposta
  • I stumbled upon this site by accident and it turned out to be the best decision I made this year. The variety of casino tables is insane and every dealer I matched was genuinely professional. Never have I felt this comfortable placing my bets online. 877betgame

    Resposta
  • Finding a trustworthy gaming hub that actually delivers on its promises is rare these days. This place keeps its word with fair odds and lightning fast payouts. I play here after work to unwind and it never disappoints me. nm77

    Resposta

Deixe uma resposta