Runtime: Sluiten workbook als aan het werk in een andere workbook

Status
Niet open voor verdere reacties.

Noudthy

Gebruiker
Lid geworden
7 apr 2016
Berichten
39
Ik heb een VBA gemaakt en daar een runtime in gezet om het/de workbook te sluiten wanneer er een bepaalde tijd geen actie in is.
Echter zodra ik in een andere workbook (excelbestand) aan het werk ben (de ActiveWorkbook) krijg ik een fout melding.
Ik vermoed dat dat komt omdat ik in Thisworkbook een "Private Sub Workbook_Close()" heb staan, waar een bepaalde opslagactie plaats vind. Voor het geval men op het rode kruisje drukt, er wordt dan nl gelijk een back up gemaakt. Dat deel script heb ik hier nu niet bijdehand, maar dat is denk ik niet van belang.

-Ik vermoed dat doordat ik niet in het workbook aan het werk ben met de VBA er in dat de macro de actie niet kan uitvoeren omdat er een aantal bewerkingen (zoals data in cellen plaatsen (naam gebruiker) etc.) in de "Private Sub Workbook_Close()" staan

De vraag is hoe krijg ik het bewuste bestand met een runtime actie toch gesloten, wanneer het niet de actieve is?

In Thisworkbook:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   Application.OnTime EndTime, "CloseWB", , False
   RunTime
End Sub

In module:
Code:
Public EndTime

------------------------------------------

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

----------------------------------------------------

Sub CloseWB()
     With ThisWorkbook
          .Save
          .Close
   End With
End Sub

Nu denk ik aan een VBA code die ondanks dat ik een andere workbook als actief heb de workbook die gesloten moet worden (even) de actieve wordt.

Kan dat zo ja, hoe?
Andere oplossing? Iets fouts in de code?

Dank al vast voor meedenken/oplossen :)
 
Laatst bewerkt:
Mij lijkt de code in Private Sub Workbook_Close() wel van belang.
 
Die kan ik morgen wel plaatsen.

Maar die loopt als een tierelier, zowel als ik op afsluiten (kruisje) dus close klik en vis runtime maar alleen als dit workbook ook de activeworkbook is.
Plaatst gegevens in cellen, maakt back up int .txt format plaatst wachtwoorden op tabbladen en slaat op.
 
Al je geen nadere specificatie aan de naam van de macro geeft, gaat eExcel ervan uit dat de macro in het actieve werkboek staat.
Die vindt ie dus niet.
Je zult aan "CloseWB" de naam van het werkboek moeten toevoegen.
 
Ik weet niet hoe jouw bestand heet...

Code:
Application.OnTime EndTime, "voorbeeld.xlsb!module1.CloseWB", , True
 
Thnx !!
Ik laat het voor nu.
Het gaat maar over een paar man die na bewerken het bestand kunnen open laten staan.
Als die iemand blokkeren is dat bij openen ook zichtbaar en na twee keer gaat hun kop er gewoon af :)
 
Werk je bij een crematorium ?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan