Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 18 van 18

Onderwerp: aftellen van tijd starten en onderbreken

  1. #1
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Vraag is opgelost

    aftellen van tijd starten en onderbreken

    Hoi excellers,

    Bij het openen van het Workbook() wordt de volgende code gebruikt voor het aftellen van de tijd. (van 15 min naar 0).
    5 seconden voor het einde wordt een Popup getoond met de waarschuwing dat het programma over 5 sec. automatich wordt afgesloten.
    Dit werkt allemaal goed.

    Code:
    EndTime = Now + TimeValue("00:15:06")
      WarningTime = EndTime - TimeValue("00:00:05")
      Application.OnTime WarningTime, "Afsluiten", , True
      Application.OnTime EndTime, "CloseWB", , True
      AutoSluiten.Show
      StartAftellen

    In de Module staat de volgende code en het oproepen van een "waarschuwingsbericht."


    Code:
    Sub CloseWB()
        Application.DisplayAlerts = False
        With ThisWorkbook
            .Saved = True
            .Close
        End With
        End Sub
    
    Sub Afsluiten()
      WarningMessage.Show
    End Sub
    
    Sub VervolgAftellen()
    NextTime = Now + TimeValue("00:00:01")
    Sheet11.Range("N1").Value = EndTime - Now
    If EndTime - Now < 0 Then CloseWB 'Exit Sub
    Application.OnTime NextTime, "VervolgAftellen"
    End Sub
    
    Sub StartAftellen()
    Sheet11.Unprotect Password:="XXX"
    NextTime = Now + TimeValue("00:00:00")
    Sheet11.Range("N1").NumberFormat = "mm:ss"
    Application.OnTime NextTime, "VervolgAftellen"
    Sheet11.Protect Password:="XXX"
    End Sub
    Nu wil ik voor onderhoud dat de (gestarte)tijd onderbroken wordt, of beter gezegd wordt gestopt.

    Dat doe ik met de volgende code:

    Code:
    Application.OnTime NextTime, "VervolgAftellen", , False
    Application.OnTime EndTime, "CloseWB", , False
    Ook dat werkt.Dat wil zeggen de tijd stopt in de actieve cel N1

    Maar wat ik niet voor elkaar krijg is dat wanneer ik de "stopknop" geactiveerd heb,
    dat de melding van de warningmessage achterwege blijft.

    Iemand enig idee?
    Graag jullie advies/hulp

  2. #2
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Gebruik een globale Boolean variabele die aangeeft of de timer draait of niet en controleer daar dan op in de Sub Afsluiten.
    Bij het starten van de timer zet je die variabele op True en bij het stoppen op False.
    Laatst aangepast door edmoor : 10 januari 2017 om 17:03
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  3. #3
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Hoi Edmoor, (waar is je mooie plaatje ) bedankt voor je reactie. Ik heb nu in de module staan:

    Code:
    Sub PW_XXX()
    Dim PW_XXX As String
    Dim Afsluiten As Boolean
    
    PW_XXX = Wachtwoord.TBX_Naam.Value
        If PW_XXX = "Naam" Then
            Application.OnTime NextTime, "VervolgAftellen", , False
            Application.OnTime EndTime, "CloseWB", , False
            Afsluiten = False
            If Afsluiten = False Then
            MsgBox "Aftellen is onderbroken!"
    End If
    End If
    Maar de melding blijf komen! Kan je me een tip geven wat ik over het hoofd zie of juist helemaal niet goed doe?

  4. #4
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    M'n huidige plaatje gaat om dezelfde dame

    Ik zei dus een Globale variabele, dus eentje die je buiten de Sub declareert, die van jouw staat in de Sub zelf.
    Dus buiten de Subs:
    Public Afsluiten As Boolean

    De waarde kan je dan zetten waar dat nodig is en ergens anders erop controleren.

    Nog 1 keer voor jou dan
    Naam: avatar13291_6.gif.jpg
Bekeken: 65
Grootte: 6,0 KB
    Laatst aangepast door edmoor : 11 januari 2017 om 17:36
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  5. #5
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Edmoor, bedoel je met de opmerking "buiten de Sub declareer" dat ik bv een nieuwe module creëer?
    Dat heb ik overigens gedaan maar dan krijg ik vervolgens de melding dat er een dubbelzinnige naam "Afsluiten" is gevonden!

    Dit heb ik dan in een nieuwe module gezet:
    Code:
    Option Explicit
    Public Afsluiten As Boolean
    Uiteraard heb ik de dim Afsluiten #3 verwijderd, het overige is ongewijzigd!

    PS Bedankt voor het vertrouwde plaatje

  6. #6
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Als je hem eenmaal buiten een sub hebt gedeclareerd mag je hem uiteraard nergens anders meer declareren omdat je die dan gewoon in iedere Sub en Function al kan gebruiken. Het declareren ervan mag ook in een bestaande module. Het is dus niet nodig er speciaal een nieuwe module voor te gebruiken.
    Laatst aangepast door edmoor : 11 januari 2017 om 21:48
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  7. #7
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Edmoor ik raak de weg volledig kwijt omdat de melding blijft komen dat er een dubbelzinnige naam is. Maar dat is zeker niet het geval.

    Kan het met het volgende te maken hebben dat dat elkaar "bijt?

    Code:
    Option Explicit
    Public NextTime As Date
    Public EndTime As Date
    Public Afsluiten As Boolean
    Of...

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If EndTime Then
            Application.OnTime _
            EarliestTime:=EndTime, _
            Procedure:="CloseWB", _
            Schedule:=False
            EndTime = Empty
            Afsluiten , False
        End If
    End Sub

  8. #8
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Plaats je document eens, dan zijn we snel genoeg achter de oorzaak.
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  9. #9
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    die optie heb ik ook al bedacht maar het document waarin ik werk heeft veel gevoelige informatie en veel verwijzingen in tabbladen enzo. Ik zal dan eerst een soort van "simulatie"moeten maken.

  10. #10
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Edmoor in het wb staat een regel waarin staat dat 5 sec voor het afsluiten dat de "waarschuwingstekst" actief moet worden om de gebruiker te attenderen dat het programma wordt afgesloten.

    Code:
    WarningTime = EndTime - TimeValue("00:00:05")
    ook deze heb ik geprobeerd om een False mee te geven onder "Afsluiten".
    maar dit is geen "applicatie.Ontime" functie waardoor ik dat niet kan instellen.
    Is daar een een andere manier voor?

    ps bij het samenstellen van een "nieuw" document krijg ik ook steeds de foutmelding van een dubbelzinnige naam terwijl deze slechts een x voorkomt.

  11. #11
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Maak gewoon een voorbeeld documentje met het benodigde erin en zonder de prive informatie. Plaats dat documentje hier, ook als je er foutmeldingen op krijgt. Dan kan ik het makkelijkst aangaven waar je in de fout bent gegaan.
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  12. #12
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Zie hier Edmond, ik hoop dat het allemaal duidelijk is zo. Daar waar het "stuk" loopt heb ik uitgeschakeld. De tijd start in cel n1 en heb ik nu op 1 minuut staan.
    Wanneer je op de commandobutton klikt, wordt een venster geopend waar om het wachtwoord wordt gevraagd. Wanneer je Ilse invult stopt het aftellen.
    Echter komt aan het einde de warningmessage in beeld met de mededeling dat het programma nu wordt afgesloten. Deze melding moet niet meer verschijnen wanneer de tijd onderbroken wordt met het wachtwoord.

    Ik kijk uit naar je reactie

    CooS
    Attached Files Attached Files

  13. #13
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Ik heb me niet echt verdiept in de werking, maar probeer deze eens:
    Forum.xlsb

    De oorzaak van de fout was dat je een globale variabele met de naam Afsluiten had en tevens een routine met dezelfde naam.
    Dat mag niet.
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  14. #14
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    edmoor, heb je dit zelf ook getest? want bij mij blijft de pop-up gewoon komen!?

  15. #15
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Leg eens stap voor stap uit wat de bedoeling is van dat document, wat ik dus moet doen om je probleem te reproduceren.
    Wat ik voor je hebt gedaan is onderzocht waar je fout vandaa kwam en dat heb ik verholpen.

    En hier bijvoorbeeld:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If EndTime Then
            Application.OnTime _
            EarliestTime:=EndTime, _
            Procedure:="CloseWB", _
            Schedule:=False
            EndTime = Empty
        End If
    End Sub
    Controleer je EndTime op True of False terwijl het een Date is en niet een Boolean.
    Laatst aangepast door edmoor : 16 januari 2017 om 19:20
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  16. #16
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Goed dat je dat aangeeft Edmoor.
    Het document wat ik hier naboots, is een document waar meerdere personen kunnen inloggen (niet tegelijk) en zich in een netwerk bevindt.
    Om te voorkomen dat het vergeten wordt om het document af te sluiten (waardoor er niet meer door anderen in kan worden gewerkt), heb ik bedacht om het na enige tijd, automatisch af te laten sluiten.
    Tot zover werkt dat ook.

    Maar omdat er ook wel eens onderhoud moet worden uitgevoerd aan het programma, wil ik dus dat de gestarte tijd gestopt kan worden.
    En omdat ik dat onderhoud niet altijd zelf doe (anders zou ik wel de tijd uitzetten in de vba-code) heb ik daar een button voor gemaakt waarmee dmv een wachtwoord de tijd stop gezet kan worden.
    Ook dat werkt deels. (zie cel N1)

    En wat dus niet werkt, en waar ik dus deze quote over gestart ben, is dat de warningmessage (aan het einde van de ingestelde tijd) wat zich in de formulieren bevindt, zich blijft aanmelden.
    En dat, moet dus niet meer worden weergegeven of worden opgestart.

    Ik hoop dat dit duidelijker is. Anders hoor ik je graag.
    Attached Files Attached Files

  17. #17
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Zoals ik al zei. Declareer die globale variabele met de naam Sluiten. Zet deze op True als het bericht niet meer hoeft te worden gegeven, dus in de routine waarin je dat moet doen.
    In de routine die het bericht zou tonen doe je dan:
    Code:
    If Not Sluiten Then
        Toon bericht
    End If
    "As far as I know, my computers have never had an undetected error. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  18. #18
    Senior Member
    Geregistreerd
    15 mei 2015
    Locatie
    Noord Holland
    Bedankt voor je hulp Edmoor, maar ik kom er niet uit. Ik ga kijken of ik hier wel mee door moet gaan.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Aanbiedingen