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

Excelbestand automatisch opslaan en afsluiten met timer

Status
Niet open voor verdere reacties.

vissh18

Nieuwe gebruiker
Lid geworden
24 mei 2016
Berichten
2
Beste mensen,

Ik probeer in een Excel bestand een macro te plaatsen die er voor zorgt dat het bestand na 3 minuten automatisch opslaat en daarna het bestand vervolgens afgesloten wordt. ik krijg het alleen niet voor elkaar om er ook een timer in te maken die aftelt tot het moment van afsluiten. Probleem is dat de timer ook 'opgeslagen' wordt en bij de volgende keer openen op nul staat. Hoe moet ik dit oplossen? En hoe krijg ik het voor elkaar dat de macro niet steeds vast loopt als ik van werkblad switch?

Ik heb tot nu toe dit:

ThisWorkbook

Code:
Private Sub Workbook_Open()
 Application.OnTime Now + TimeValue("00:03:00"), "SluitAf"
End Sub

Module 1

Code:
Public Sub SluitAf()
 With ActiveWorkbook
 .Save
 .Close
 End With
End Sub

Module 2

Code:
Dim gCount As Date
'Updateby20140925
Sub Timer()
    gCount = Now + TimeValue("00:00:01")
    Application.OnTime gCount, "ResetTime"
End Sub
Sub ResetTime()
Dim xRng As Range
Set xRng = Application.ActiveSheet.Range("A1")
xRng.Value = xRng.Value - TimeSerial(0, 0, 1)
If xRng.Value <= 0 Then
    MsgBox "Countdown complete."
    Exit Sub
End If
Call Timer
End Sub

Misschien zien jullie het al, maar ik ben nogal een 'noob' op het gebied van VBA en dit zijn allemaal gejatte codes. Maar beter goed gejat dan slecht verzonnen, toch?:D

Alvast bedankt voor het meedenken!
 
Mag ik uit nieuwsgierigheid vragen wat dat voor bestand is dat je na 3 minuten wilt opslaan en afsluiten?
 
Zet onderstaande eens in Thisworkbook.
Code:
Private Sub Workbook_Open()
Dim t As Date, a As Date
 t = Time
 DoEvents
     Do
       DoEvents
      a = DateAdd("s", 1, Time)
       If a = t + TimeValue("00:03:00") Then ThisWorkbook.Close 1
    Loop Until a = t + TimeValue("00:03:01")
End Sub
 
Mag ik uit nieuwsgierigheid vragen wat dat voor bestand is dat je na 3 minuten wilt opslaan en afsluiten?

Het is een bestand wat door veel personen moet worden ingevuld via een Excel bestand dat gedeeld is via een netwerkmap. Nu zou je zeggen 'waarom deel je het bestand niet?' Dit geeft op de een of andere manier veel foutmeldingen e.d. Omdat de personen die dit moeten invullen er in principe maar één keer in hoeven heb ik deze oplossing bedacht. Het probleem is namelijk dat mensen het vergeten af te sluiten en daardoor kan een ander het niet invullen. Als het bestand zich automatisch sluit, dan hebben we dat probleem niet meer.

Zet onderstaande eens in Thisworkbook.
Code:
Private Sub Workbook_Open()
Dim t As Date, a As Date
 t = Time
 DoEvents
     Do
       DoEvents
      a = DateAdd("s", 1, Time)
       If a = t + TimeValue("00:03:00") Then ThisWorkbook.Close 1
    Loop Until a = t + TimeValue("00:03:01")
End Sub

Ik ga het eens proberen, dank je wel!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan