• 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.

Timer in beeld

Status
Niet open voor verdere reacties.

Bart198099

Gebruiker
Lid geworden
21 jul 2012
Berichten
38
Goedendag,

Een excel document laat ik automatisch na 10 minuten afsluiten als er geen handelingen worden verricht zodat deze niet geblokkeerd blijft voor andere gebruikers (ik heb geprobeerd het document op 'delen' te zetten maar dan werken een aantal macro's niet en klagen mensen dat niet alles opgeslagen wordt)

Voor de timer gebruik ik:
Workbook:

Code:
Private Sub Workbook_Open()
RunTime
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.OnTime EndTime, "CloseWB", , False 'uitvoering cancelen
RunTime
End Sub

En module:
Code:
Public EndTime

Sub RunTime()
EndTime = Now + TimeValue("00:10:00")
Application.OnTime EndTime, "CloseWB", , True
End Sub

Sub CloseWB()
With ThisWorkbook
Sheets("Anesthesisten").Visible = False
Sheets("Air ambulance inwerk").Visible = False
Sheets("Chirurgen").Visible = False
Sheets("Cardiologen").Visible = False
Sheets("Standbylijst vandaag1 ").Visible = False
Sheets("Gynaecologen").Visible = False
Sheets("Verloskundigen").Visible = False
Sheets("Orthopeden").Visible = False
Sheets("Psychiater").Visible = False
Sheets("Dermatologen").Visible = False
Sheets("Standbylijst vandaag1 ").Visible = False
Sheets("Anesthesie Assistenten").Visible = False
Sheets("Internisten").Visible = False
Sheets("Air ambulance").Visible = False
Sheets("Dialyse").Visible = False
Sheets("Weekend Standby-lijst ").Visible = False
Sheets("HAP").Visible = False
Sheets("IMSCA ARUBA").Visible = False
Sheets("Zorg Algemeen").Visible = False
Sheets("ICT").Visible = False
Sheets("Technische Dienst").Visible = False
Sheets("Recompressie").Visible = False
Sheets("Spoed ID").Visible = False
Sheets("Oogpoli").Visible = False
Sheets("CSA").Visible = False
Sheets("OK Assistenten").Visible = False
Sheets("Ambulance + Gips").Visible = False
Sheets("Radiologen").Visible = False
Sheets("Rontgen en CT").Visible = False
Sheets("Echografie").Visible = False
Sheets("Laboratorium").Visible = False
Sheets("Medisch Secretariaat").Visible = False
Sheets("Kinderartsen").Visible = False
Sheets("Neurologen").Visible = False
Sheets("Longartsen").Visible = False
Sheets(" Botika").Visible = False
Sheets("Achterwacht").Visible = False
Sheets("Nefrologen").Visible = False
Sheets("Internisten").Visible = False
Sheets("Roosterblad").Visible = False
Sheets("Standbylijst vandaag").Visible = False
Sheets("Week Standby-lijst ").Visible = False
Sheets("Standbylijst Morgen").Visible = False
Sheets("Standbylijst Overmorgen").Visible = False
Sheets("URO").Visible = False
Sheets("Mailinglist").Visible = False
.Save
.Close
End With
End Sub
Dit werkt goed
Nu vroeg ik mij alleen af of het mogelijk is om de timer ook ik beeld te brengen, eventueel alleen op een voorblad maar idealiter overal.

Groeten,
Bart
 
Laatst bewerkt:
De code is niet te lezen als deze niet tussen codetags staat.

Om je vraag te beantwoorden; al zie ik dat dezelfde vraag ook in de Vba sectie staat.

Macro's en gedeelde bestanden gaan vaak niet samen in Excel.
 
Laatst bewerkt:
Beste Harry,
Bedankt voor je reactie.
Ik heb de code aangepast, ik zag alleen dat ik mijn bericht bij VBA niet kan verwijderen. (ik twijfelde waar deze vraag het best geplaatst kon worden)
Mvg
 
Een timer in Excel is eenvoudig te realiseren
zie onder meer dit voorbeeld: http://handleiding.helpmij.nl/handleiding/view/?mid=602
het kan wel een uitdaging blijken om dit soepel te houden bij een groter werkboek met macro's je kan dan bijvoorbeeld voor minuut kiezen ipv iedere seconde.

Verder vereenvoudig je de code door de objectnaam ipv van de werkbladnamen te gebuiken.
sheet("naam") wordt dan bijvoorbeeld blad1 (sheet1 in de engelse versie)

De code wordt nog eenvoudiger wanneer je de bladen met een lus doorloopt. Zie het tweede voorbeeld in de link https://support.microsoft.com/nl-nl/kb/142126

Verder ga ik er vanuit dat je de bladen zichtbaar maakt bij openen. Het is dan beter om er een aparte routine van te maken die je aanroept met een boelean switch. False vervang je dan door de switch. Afhankelijk van het doel zet je de switch op true en false. Je hebt vast een blad dat zichtbaar moet blijven. Daar maak je dan een uitzondering voor. (Er moet altijd een blad zichtbaar blijven, anders krijg je een fout in de lus)

Overigens kun je inderdaad de rste post van een. Raag niet verwijderen, maar je kunt wel de tekst aanpassen en naar deze vraag laten verwijzen. Er is vast een moderator die het later voor je weg haalt.
 
Laatst bewerkt:
Beste Leofact,

Dank!
Met die handleiding kom ik een stuk verder.

Wat betreft het vereenvoudigen van de code ben ik inderdaad weleens bezig geweest maar kreeg toen de uitzondering van het voorblad wat open moest blijven er niet in.
De bladen worden niet zichtbaar bij openen maar er staan (wachtwoord beveiligde) knoppen op een voorblad waarbij per gebruiker een eigen pagina opent.

Bedankt iig voor de tip, ik ga het nog eens proberen en kijken of ik er uit kom
 
Oke, dat is dus een andere situatie.
De uitzondering kin je als volgt maken.
Bij het Microsoft voorbeeld vervang je de msgbox regel door:
Code:
IF Current.Name <> "voorbladnaam" then Current.Visible = False
Het voorblad blijft dan zichtbaar.
 
Laatst bewerkt:
Het is me inmiddels gelukt om een timer te maken met behulp van de handleiding, het lukt me echter niet om deze te laten verwijzen naar de runtime.
Hoe zou ik dat het beste kunnen doen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan