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

Sluit wel af maar slaat niet op

Status
Niet open voor verdere reacties.

ewaldmauritz

Gebruiker
Lid geworden
19 okt 2011
Berichten
87
Ik heb de code uit onderstaande topic overgenomen.
http://www.helpmij.nl/forum/showthread.php/398549-Automatisch-afsluiten-van-bestand-na-X-tijd

Dit ingevoerd in ThisWorkbook:
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
   MsgBox "Timer wordt opnieuw ingesteld."
   RunTime
End Sub

Dit ingevoerd in een module:
Code:
Public endtime
Sub RunTime()
   endtime = Now + TimeValue("00:00:20")
   Application.OnTime endtime, "CloseWB", , True
End Sub
 
Sub CloseWB()
     With ThisWorkbook
      .Saved = True
      .Close
   End With
End Sub

Dat werkt op zich goed. De timer werkt prima, bij wijzigingen wordt de timer gereset. Na 20 seconden sluit het bestand af. Het enige wat deze code niet goed doet is de wijzigingen opslaan bij het sluiten. Ik kom er niet achter wat het is. Kan iemand mij helpen?
 
Ik zal wel een leek zijn, maar als leek lees ik die CloseWB() dat die subroutine het Excel bestand de status opgeslagen geeft zonder dat werkelijk te doen en dan het bestand af te sluiten.
Dus hetzelfde als dat je een Excel bestand opent en (zonder wijzigingen) weer afsluit, dus dat je geen vraag krijgt om de wijzigingen op te slaan. In jouw geval dus omdat je Excel wijsmaakt dat zojuist het bestand met wijzigingen was opgeslagen (terwijl dat niet zo is).

Wacht nog even af wat anderen te melden hebben, voor de zekerheid.

Tijs.
 
Laatst bewerkt:
Klinkt aannemelijk. Ik wacht inderdaad de andere reacties nog even af.
Als jouw redenering klopt, blijft het voor mij nog wel de vraag hoe ik dat dan oplos.
 
Klopt helemaal wat dnties zegt.
Probeer het eens zo:
Code:
Sub CloseWB()
    Application.DisplayAlerts = False
    With ThisWorkbook
        .Save
        .Close
    End With
End Sub
 
Laatst bewerkt:
Of:
Code:
Sub CloseWB()
  ThisWorkbook.Close -1
End Sub
 
Ik zie alweer nieuwe Excel vragen van ewaldmauritz, maar geen terugmelding over de gegeven oplossingen in deze vraag.
Zoals Mart Smeets zou zeggen: "Mag ik dat slordig noemen? Ja, dat mag ik slordig noemen."

Dus terugmelding over de gegeven tips en (indien opgelost) deze vraag de status opgelost geven lijkt me dik aan de orde.

Tijs.
 
Laatst bewerkt:
Je hebt gelijk, alhoewel het erger lijkt dan het is. Ik heb de vraag bewust nog even opengelaten, omdat ik het idee had dat het toch nog niet helemaal zo werkte als ik wilde. Dan had ik de mogelijkheid om later nog eens op de vraag terug te komen. Ik weet niet of die mogelijkheid er is overigens om terug te komen op een reeds afgesloten vraag?

Maar inmiddels had ik de vraag wel af kunnen sluiten. Zal het alsnog doen. Excuus.

En trouwens, ik ben fan van der Mart hoor. "Mag ik dat zeggen? Ja, dat mag ik zeggen."
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan