• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Openstaande UserForm automatisch sluiten

Status
Niet open voor verdere reacties.

danny147

Terugkerende gebruiker
Lid geworden
29 apr 2007
Berichten
4.744
Beste,

Kan ik een openstaande UserForm automatisch sluiten na 5 min.

Op de site van snb : http://www.snb-vba.eu/VBA_Application.OnTime.html
Is er heel wat te vinden maar of dit betrekking heeft tot mijn vraag ???

De UserForm blijft bij sommige van mijn collega's openstaan en daarom wil ik deze automatisch laten sluiten

Mijn UserForm bestaat uit meerbladige tabbladen.
 
Laatst bewerkt:
Dat kan uiteraard met een Timer routine die je start op het moment van openen van het formulier.
Maar ik denk dat je er beter voor kan zorgen dat deze op het juiste moment gesloten wordt als de collega het werkt ermee gedaan heeft.
 
Leuke collega ben jij, ik ben hard aan het werk in de file, en jij beslist sluiten die hap.
 
IK bedoelde hetzelfde ;)
 
Geen probleem uiteraard :)
 
En als je het formulier op showmodal = false zet gaat het dan wel goed?

Code:
Userform1.show vbmodeless

Of in een handeling wanneer jij denkt dat het gesloten moet worden (bv. sheet_activate).
Code:
For Each UForm In UserForms
  Unload UForm
Next
 
Laatst bewerkt:
Beste,

Citaat van gast0660

Leuke collega ben jij, ik ben hard aan het werk in de file, en jij beslist sluiten die hap.

Nadat de inactiviteit 5 min. bedraagt :-)
Men kan enkel de UserForm gebruiken omdat alle tabbladen beveiligd zijn tegen werken.
 
Dan kan je dus een timer gebruiken die bij iedere wel activiteit weer gereset wordt.
 
Beste,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    RunTime
End Sub

Code:
Sub RunTime()
EndTime = Now + TimeValue("00:05:00")
Application.OnTime EndTime, "CloseWB", , True
 End Sub
Sub CloseWB()
With ThisWorkbook
 .Save
 ThisWorkbook.Close True
 End With
End Sub

Nu nog de handeling van HSV toevoegen
En werkt deze dan wel als alle tabbladen beveiligd zijn want dan kan er toch geen Worksheet_Change zijn ?
 
In #1 heb je het over een Userform en in #11 ineens over het sluiten van het document, dat is iets heel anders.
 
Beste edmoor,

Ik wil eerst de Userform sluiten na inactiviteit van 5 min indien deze nog open staat.
Daarna saven en document sluiten.
Op deze manier kunnen anderen ook het documentje openen
Via Document Gedeeld te plaatsen werken de UserForms (VBA) niet meer
 
Je kan bij het openen van het Userform een timer starten die elke seconde kijkt naar de waarde van een globale variabele.
Als deze 300 is dan de boel opslaan en sluiten.
De waarde van die globale variabele wordt door de timer dan iedere seconde met 1 verhoogt en bij iedere activiteit in het Userform weer op 0 gezet.
 
Beste,

Hoe ziet dit er dan uit voor mijn bestandje ?
 
Zoiets in een module:
Code:
Public Timer1Val As Integer

Sub StartTimer1()
    Application.OnTime Now + TimeValue("00:00:01"), "NextTick1"
End Sub

Sub NextTick1()
    Timer1Val = Timer1Val + 1
    If Timer1Val = 300 Then
        StopTimer1
    Else
        StartTimer1
    End If
End Sub

Sub StopTimer1()
    On Error Resume Next
    Application.OnTime Now + TimeValue("00:00:01"), "NextTick1", , False
    With ThisWorkbook
        .Save
        .Close
    End With
End Sub

Bij het openen van het Userform:
Code:
StartTimer1

Bij iedere activiteit in het Userform:
Code:
Timer1Val = 0

Bij het sluiten van het Userform:
Code:
StopTimer1
 
Laatst bewerkt:
Beste,

Heb bestandje aangepast, maar werkt niet naar behoren bij mij
Kan er eens gekeken worden wat er mis loopt
Na knop sluiten moet hij ook nog 300 sec wachten vooraleer document sluit
 

Bijlagen

"niet naar behoren" is niet echt een uitleg van wat er niet naar behoren werkt.

Je hebt in ieder geval deze:
Public Timer1Val As Integer

ergens middenin de Module gezet en dat mag niet.
Die hoort bovenin te staan voordat er een Sub begint.

Bij ComboBox2_Change() staat StartTimer1 in plaats van dat de Public variabele op 0 wordt gezet.
 
Laatst bewerkt:
Beste,

Heb het wat aangepast, maar als er op de knop sluiten van de UserForm geklikt wordt sluit hij onmiddellijk het bestandje.
Ook hier moet hij 300 sec wachten.
Trouwens hier gaat het soms mis.
Wat staat er nog niet goed in het bestandje ?
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan