Vídeo recomendado
https://youtu.be/diWPPPhW-9E

[RESOLVIDO] Fechar userform por inatividade

Esclarecimentos e dúvidas sob o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel publicado no site e blog http://www.tomasvasquez.com.br
reinaldo.silva
Manda bem
Manda bem
Mensagens: 137
Registrado em: Ter Mai 11, 2010 12:00 pm

[RESOLVIDO] Fechar userform por inatividade

Mensagem por reinaldo.silva »

Boas gente..

Estou usando o código abaixo para fechar as plan por inatividade, eu gostaria tbém de fechar os userform...mas não consigo...valeu pela atenção...

Private Sub Workbook_Open()
UserForm1.Show
SaveSheet = True 'Defina True para Salvar a planilha ao Fechar ou False para não salvar
Timeout = 3 'O Tempo de Inatividade é o resultado de TimeOut*TempoVerifica
TempoVerifica = "00:00:05" 'Intervalo de Verificação
StartTimer 'Inicia o Timer(descomentar para funcionar)
End Sub
Private Sub Workbook_Activate()
TempoInativo = 0
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
TempoInativo = 0
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
TempoInativo = 0
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
TempoInativo = 0
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
TempoInativo = 0
End Sub

Global Timeout As Integer
Global SaveSheet As Boolean
Global TempoVerifica As String
Global dTime
Global TempoInativo As Integer
Function StartTimer()
dTime = Now + TimeValue(TempoVerifica)
Application.OnTime dTime, "Verifica", , True
End Function
Function Verifica()
TempoInativo = TempoInativo + 1
If TempoInativo >= Timeout Then
Application.StatusBar = False
ThisWorkbook.Close SaveSheet
End If
dTime = Now + TimeValue(TempoVerifica)
Application.OnTime dTime, "Verifica", , True
End Function
Function StopTimer()
Application.StatusBar = False
Application.OnTime dTime, "Verifica", , False
End Function
Editado pela última vez por reinaldo.silva em Qui Set 02, 2010 12:40 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Fechar userform por inatividade

Mensagem por webmaster »



reinaldo.silva
Manda bem
Manda bem
Mensagens: 137
Registrado em: Ter Mai 11, 2010 12:00 pm

Re: Fechar userform por inatividade

Mensagem por reinaldo.silva »

Dae Tomas... cara deu certinho...valeu...

Cara aproveitando este post...vc me mandou algum tempo atras um código que fecha se inativo...funciona beleza apenas...
Ocorre que quando eu salvo e fecho o arquivo antes do tempo pré determinado, ele continua correndo o tempo e no tempo determinado abre novamente a tela para habilitar a segurança de macro do arquivo, agora se fechar por inatividade não abre fica ok...

Será que fiz alguma coisa errada...se puder dar uma olhada...segue o arquivo para sua análise...

valeu
Anexos
Fecha_Inativo.7z
(8.39 KiB) Baixado 632 vezes


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Fechar userform por inatividade

Mensagem por webmaster »

Reinaldo,

Suspeito que seja preciso cancelar a macro agendada antes de fechar. Veja como fazer isso em:

http://www.tomasvasquez.com.br/blog/mic ... cao-ontime

Abraços


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


reinaldo.silva
Manda bem
Manda bem
Mensagens: 137
Registrado em: Ter Mai 11, 2010 12:00 pm

Re: Fechar userform por inatividade

Mensagem por reinaldo.silva »

Dae Tomas...cara fiz o diabo mas não consegui cancelar o ontime...se eu salvo e fecho o arquivo antes do tempo da inatividade, no tempo determinado o cara abre novamente a tela para habilitar a macro...
Eu coloquei o código junto com o módulo do runtime, talvez eu tenha colocado no lugar errado...se puder me orientar... :mrgreen:

Sub RunTime()
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=True
End Sub
Sub CloseWB()

Application.DisplayAlerts = False

With ThisWorkbook
.Saved = True
.Close
End With
End Sub

Sub CancelaOnTime()
Call Application.OnTime(EarliestTime:=EndTime("00:00:20"), _
Procedure:=”ExecutaOnTime”, Schedule:=False)
End Sub


reinaldo.silva
Manda bem
Manda bem
Mensagens: 137
Registrado em: Ter Mai 11, 2010 12:00 pm

Re: Fechar userform por inatividade

Mensagem por reinaldo.silva »

Dae Tomas, cara vc sabe porque quando eu abro o arquivo altero e fecho salvando, ele abre novamente automático????

Segue planilha para suas análise eu acho que tenho que limpar a memória será isso?
Anexos
Lotes Contábeis Manuais, CIA 00207.7z
(81.1 KiB) Baixado 544 vezes


reinaldo.silva
Manda bem
Manda bem
Mensagens: 137
Registrado em: Ter Mai 11, 2010 12:00 pm

Re: Fechar userform por inatividade

Mensagem por reinaldo.silva »

dae Tomas...beleza
Cara no post anterior, tava com uma dúvida quanto ao seu código de fechar por inatividade...ele fecha na boa mas não sei porque, depois de algum tempo abre a tela novamente para habilitar as macros...meio louco... se puder me dar um help..
valeu


celiomendonca
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Qui Mar 01, 2018 10:13 pm

Re: [RESOLVIDO] Fechar userform por inatividade

Mensagem por celiomendonca »

Alguem pode comentar esse codigo ai a cima, não consegui adaptar ,, preciso fechar um USERFORM se ficar inativo por um certo periodo de tempo sem entrada de dados, sem que o usuario mexa o mouse por cima.
como se fosse um tempo de bloqueio de tela do windows.
então quero que se o usuario abrir um USERFORM e ficar mais de um minuto sem mexer , que o USERFORM faça UNLOAD ME.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder