Ir ao conteúdo
  • Cadastre-se

Utilizar dois comandos de BeforeSave e BeforeClose


Posts recomendados

Prezados, boa noite.

 

Eu consigo utilizar dois comandos na mesma pasta de trabalho? Por exemplo, preciso colocar um beforesave e beforeclose na Plan1 e colocar outro beforesave e beforeclose na Plan2. Porém, ao colocar aparece que está duplicado e não deixa.

 

Tem algum espaço que eu troque o nome ou que então eu consiga fazer para colocar?

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

 

 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 
Obrigado
Link para o comentário
Compartilhar em outros sites

 

Por exemplo, preciso colocar um beforesave e beforeclose na Plan1 e colocar outro beforesave e beforeclose na Plan2.

 

 

Olá, Jonatas.

Workbook_BeforeClose e Workbook_BeforeSave são eventos de Pasta de Trabalho (ou Arquivo) e não de planilha, por isso, ambos devem ser colocados no módulo de "EstaPasta_de_trabalho".

Os dois podem ser instalados em uma mesma Pasta.

Link para o comentário
Compartilhar em outros sites

Olá, Jonatas.

Workbook_BeforeClose e Workbook_BeforeSave são eventos de Pasta de Trabalho (ou Arquivo) e não de planilha, por isso, ambos devem ser colocados no módulo de "EstaPasta_de_trabalho".

Os dois podem ser instalados em uma mesma Pasta.

l

Obrigado pela resposta, mas minha duvida é,

Eu preciso colocar beforesave1: se tal coluna não tiver preenchida, volte e preencha.

E além desse eu preciso colocar beforesave2: se tal linha não estiver preenchida, volte e preencha.

E no beforeclose a mesma coisa, preciso ter dois beforesave e dois beforeclose. Não sei se é possível, pois aparece comando duplicado quando tento. E não sei se dá para colocar mais funções dentro de apenas um comando.

Link para o comentário
Compartilhar em outros sites

..., preciso ter dois beforesave e dois beforeclose. Não sei se é possível, pois aparece comando duplicado quando tento. E não sei se dá para colocar mais funções dentro de apenas um comando.

 

Esses eventos devem ser únicos em uma "Pasta de Trabalho". Não é possível ter mais de um.

O código disparado por esses eventos pode ter quantas condições forem necessárias.

Link para o comentário
Compartilhar em outros sites

Esses eventos devem ser únicos em uma "Pasta de Trabalho". Não é possível ter mais de um.

O código disparado por esses eventos pode ter quantas condições forem necessárias.

 

Entendi! Coloquei mais de uma condição e deu certo, obrigado!

 

Me da uma ajuda nesse código por favor:

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)With Sheets("MARÇO")        If .[E36] <> [F36] Then            MsgBox "Flávia, volte e preencha todas as informações necessárias! Contamos com sua colaboração."                Sheets("MARÇO").Activate        Cancel = True        End If    End With        With Sheets("Consolidado")        If .[M28] <> [M29] Then            MsgBox "Flávia, volte e preencha todas as informações necessárias! Contamos com sua colaboração."                Sheets("Consolidado").Activate        Cancel = True        End If    End WithEnd Sub

Se a condição da planilha "Consolidado" estiver de acordo com o código, clico em fechar ele aparece a mensagem normalmente, mas se eu clico na planilha "Março" ele deixa salvar corretamente. 

 

Tem alguma correção? 

Link para o comentário
Compartilhar em outros sites

Da forma que está escrito, o comando abaixo compara o conteúdo da célula "E36" da planilha "MARÇO" com o conteúdo da célula "F36" da planilha ativa. Se você quer comparar com "F36" da planilha "MARÇO" então é preciso colocar o ponto (em vermelho) >> .[F36]


With Sheets("MARÇO")
        If .[E36] <> [F36] Then

 

 

Idem para o comando referente à planilha "Consolidado".

 

Link para o comentário
Compartilhar em outros sites

Fiz a alteração e ficou como queria, mas queria incrementar um pouco mais, é possível?

 

Por exemplo,

traduzindo o código

 

Na planilha "Março", se E36 estiver diferente de F36, em seguida apareça a mensagem. Até aí tudo certo, porém queria adicionar para fazer com que o código fique assim:

 

Se na planilha "Março" E36 estiver diferente de F36, apareça a mensagem, se não tiver diferente, na planilha "Consolidado", se M28 for diferente de M29 apareça a mensagem.

 

Tipo um procedimento, se a planilha "Março" estiver ok, ele vai verificar na planilha "Consolidado" se está, aí sim irá autorizar o salvamento ou não. 

 

Obrigado.

 Private Sub Workbook_BeforeClose(Cancel As Boolean)With Sheets("MARÇO")        If .[E36] <> [F36] Then            MsgBox "Flávia, volte e preencha todas as informações necessárias! Contamos com sua colaboração."                Sheets("MARÇO").Activate        Cancel = True        End If    End With        With Sheets("Consolidado")        If .[M28] <> [M29] Then            MsgBox "Flávia, volte e preencha todas as informações necessárias! Contamos com sua colaboração."                Sheets("Consolidado").Activate        Cancel = True        End If    End WithEnd Sub
Link para o comentário
Compartilhar em outros sites

Veja se é isso:

Private Sub Workbook_BeforeClose(Cancel As Boolean) If Sheets("MARÇO").[E36] <> Sheets("MARÇO").[F36] Or _   Sheets("Consolidado").[M28] <> Sheets("Consolidado").[M29] Then   MsgBox "Flávia, volte e preencha todas as informações necessárias! Contamos com sua colaboração."   Cancel = True End IfEnd Sub
Link para o comentário
Compartilhar em outros sites


Private Sub Workbook_BeforeClose(Cancel As Boolean)

 If Sheets("MARÇO").[E36] <> Sheets("MARÇO").[F36] Then

  MsgBox "Flávia, volte e preencha todas as informações necessárias! Contamos com sua colaboração."

  Sheets("MARÇO").Activate: Cancel = True

 ElseIf Sheets("Consolidado").[M28] <> Sheets("Consolidado").[M29] Then

  MsgBox "Flávia, volte e preencha todas as informações necessárias! Contamos com sua colaboração."

  Sheets("Consolidado").Activate: Cancel = True

 End If

End Sub

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...