Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Excel VBA - Trocar Userform's Automático
-
- Colaborador
- Mensagens: 21
- Registrado em: Seg Abr 05, 2010 7:48 am
Excel VBA - Trocar Userform's Automático
Galera, bom dia!
Estou com problemas com a aplicação do metodo on time. Eu tenho 5 userform que ficam alternando entre si a cada valor de tempo determinado. É parecido com slide show.
Quando o inicio a planilha utilizo método:
Private Sub Workbook_Open()
userform1.Show
End Sub
depois após 5 segundos chamo a segunda userform.
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:05"), "Call_userform2"
End Sub
E assim sucessivamente até chegar na quinta userform que por sua vez chama a primeira. Este processo chega a se repetir por mais de 1 hora e depois para funcionar. Alguém pode ajudar???
Estou com problemas com a aplicação do metodo on time. Eu tenho 5 userform que ficam alternando entre si a cada valor de tempo determinado. É parecido com slide show.
Quando o inicio a planilha utilizo método:
Private Sub Workbook_Open()
userform1.Show
End Sub
depois após 5 segundos chamo a segunda userform.
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:05"), "Call_userform2"
End Sub
E assim sucessivamente até chegar na quinta userform que por sua vez chama a primeira. Este processo chega a se repetir por mais de 1 hora e depois para funcionar. Alguém pode ajudar???
Re: Excel VBA - Trocar Userform's Automático
Maximus,
Como está a macro que chama o userform1, sem ser pelo Workbook_Open?
Abraços
Como está a macro que chama o userform1, sem ser pelo Workbook_Open?
Abraços
-
- Colaborador
- Mensagens: 21
- Registrado em: Seg Abr 05, 2010 7:48 am
Re: Excel VBA - Trocar Userform's Automático
Coloquei pela seguinte forma. Quando o userform 5 inicia fica assim:
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:05"), "Call_Userform1"
End Sub
Dentro do modulo1:
Sub Call_Userform1()
Unload Userform1
Userform1.Hide
Userform2.Show
End Sub
Aew inicia o ciclo novamente.
Abraço
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:05"), "Call_Userform1"
End Sub
Dentro do modulo1:
Sub Call_Userform1()
Unload Userform1
Userform1.Hide
Userform2.Show
End Sub
Aew inicia o ciclo novamente.
Abraço
Re: Excel VBA - Trocar Userform's Automático
Maximux,
Pode enviar a planilha para dar uma olhada?
Abraços
Pode enviar a planilha para dar uma olhada?
Abraços
-
- Colaborador
- Mensagens: 21
- Registrado em: Seg Abr 05, 2010 7:48 am
Re: Excel VBA - Trocar Userform's Automático
Manda para o fórum mesmo. Tem a opção de anexar o arquivo logo abaixo do post da mensagem. Mas tem que ser em rar ou zip OK?
Abraços
Abraços
-
- Colaborador
- Mensagens: 21
- Registrado em: Seg Abr 05, 2010 7:48 am
Re: Excel VBA - Trocar Userform's Automático
Segue aew!
Conto com a sua ajuda!!!
Conto com a sua ajuda!!!
Editado pela última vez por Maximus_VBA em Ter Abr 13, 2010 2:33 pm, em um total de 1 vez.
Re: Excel VBA - Trocar Userform's Automático
Maximus,
Tem certeza de que é essa planilha? O gráfico até está bonito, mas não vi nenhum form....
Abraços
Tem certeza de que é essa planilha? O gráfico até está bonito, mas não vi nenhum form....

Abraços
-
- Colaborador
- Mensagens: 21
- Registrado em: Seg Abr 05, 2010 7:48 am
Re: Excel VBA - Trocar Userform's Automático
Ops!!! Enviei a planilha errada!!!
Segue a correta agora!!!
Segue a correta agora!!!
- Anexos
-
- Teste_Userform.rar
- (22.4 KiB) Baixado 494 vezes
Re: Excel VBA - Trocar Userform's Automático
Maximus,
Envio o arquivo de volta com algumas modificações, entre elas:
Tirei o UserFormX.Hide do código do módulo. Como você chama o Unload, não é preciso esconder o form depois disso. Alías, isso pode até atrapalhar, já que teoricamente você está chamando o form novamente.
Troquei o evento de chamada do Application.OnTime do Activate para o Initialize. O Activate só ocorre quando o form é ativado, o que implica interação do usuário. O Initialize ocorre toda vez que o form é colocado na memória.
Adicionei no Initialize um Debug.Print para que o código coloque na janela de Verificação Imediata do VBA a hora em que o Form foi aberto. Assim, case ele continue parando, será fácil rastrear em qual form parou e quando.
Abraços
Envio o arquivo de volta com algumas modificações, entre elas:
Tirei o UserFormX.Hide do código do módulo. Como você chama o Unload, não é preciso esconder o form depois disso. Alías, isso pode até atrapalhar, já que teoricamente você está chamando o form novamente.
Troquei o evento de chamada do Application.OnTime do Activate para o Initialize. O Activate só ocorre quando o form é ativado, o que implica interação do usuário. O Initialize ocorre toda vez que o form é colocado na memória.
Adicionei no Initialize um Debug.Print para que o código coloque na janela de Verificação Imediata do VBA a hora em que o Form foi aberto. Assim, case ele continue parando, será fácil rastrear em qual form parou e quando.
Abraços
- Anexos
-
- Teste_Userform.zip
- (16.77 KiB) Baixado 566 vezes