Página 1 de 1

Alterando o Evento Private Sub Workbook_open

Enviado: 22 Fev 2016 às 14:12
por Adrian
Olá pessoal!

Quando usamos aquele evento (macro ) Private Sub Workbook_open, sei que a função dele é rodar sempre quando a pasta trabalho for aberta. Teria como alterar esse evento para ele rodar só uma vez, e não sempre que eu abrir minha pasta de trabalho?

Grato

Adriano

Alterando o Evento Private Sub Workbook_open

Enviado: 22 Fev 2016 às 14:27
por GabrielPeron
Eu criaria um registro em uma célula qualquer de uma planilha, tipo se a célula for = 0 então executa a primeira abertura e muda o valor da célula para 1, se for = 1 então não faz nd ou z.

If range("X").value = 0 then
[1ª vez]
range("X").value = 1
Else
[demais]
End If

Bom... uma ideia. :) ;)

Alterando o Evento Private Sub Workbook_open

Enviado: 22 Fev 2016 às 15:52
por Adrian
Não entendi pra que serve essa macro Gabriel?

Alterando o Evento Private Sub Workbook_open

Enviado: 23 Fev 2016 às 09:13
por fernandoazevedo
Prezado Adrian;
A ideia do Gabriel se eu entendi corretamente como a execução vai acontecer somente uma vez ao executar será atribuído o valor 1 na célula fazendo que a mesma não execute novamente.
Vamos ao código:
Código: Selecionar todos
If range("X").value = 0 then // se o valor da célula que você escolheu exemplo no lugar de "X"  for igual a zero
/Execute o código aqui 
range("X").value = 1  // atribui o valor da célula x para 1 fazendo com a condição fique falsa não executando a mesma novamente.
Else
End If

Re: Alterando o Evento Private Sub Workbook_open

Enviado: 23 Fev 2016 às 12:29
por Adrian
Vou explicar melhor, a macro editada no meu projeto VBA em EstaPasta_de_trabalho é a seguinte:

Private Sub workbook_open()

Sheets("Plan3").Activate

End Sub

Obs: Com essa macro, sempre que eu abro minha pasta de trabalho, sempre também é aberta a "Plan3". Minha rotina é abrí-la todos os dias, a "Plan3" é a home page da minha pasta, por isso que programei ela para ser aberta, e a "Plan2" é a planilha que contém os nomes dos meus clientes e suas respectivas datas de nascimento. Eu queria que todos os dias que eu abrisse minha pasta de trabalho fosse aberta a "Plan2", mas que esse evento só ocorresse uma vez que esse arquivo fosse aberto, e me voltasse ao normal por diante abrindo sempre a "Plan3".

Grato

Adriano

Alterando o Evento Private Sub Workbook_open

Enviado: 23 Fev 2016 às 13:59
por GabrielPeron
Exatamente isso fernandoazevedo.

Agora Adrian, aplicando essa sua ideia no meu código ficaria assim:
Código: Selecionar todos
Private Sub workbook_open()

If range("Plan3!AA1").value <> 1 then
     Sheets("Plan2").activate
     Range("Plan3!AA1").value = 1
Else
     Sheets("Plan3").activate
End If

End Sub
Só fica ligado que eu coloquei como referência a célula AA1 da Plan3 para checar o status se o arquivo já foi aberto ou não.
Desculpe a demora, :mrgreen: .

Att

Re: Alterando o Evento Private Sub Workbook_open

Enviado: 23 Fev 2016 às 14:03
por alexandrevba
Boa tarde!!

Você pretende abrir o arquivo e a guia "Plan2" vai ser selecionada, se fechar o arquivo e abrir novamente a guia Plan3 que deve ser selecionada?

Se for isso já tentou armazenar o valor das vezes em que o arquivo foi aberto em uma célula?

Outra fonte próxima:
http://stackoverflow.com/questions/2438 ... ated-after

Att

Re: Alterando o Evento Private Sub Workbook_open

Enviado: 23 Fev 2016 às 15:16
por Adrian
Gabriel usei a macro que você descreveu. Mas aconteceu isso quando abrir o arquivo

segue anexo