Excel létrehozásának dátuma utáni 5 órával ne fusson a makró

Excel létrehozásának dátuma utáni 5 órával ne fusson a makró
2020-12-19T19:52:24+01:00
2020-12-20T13:50:56+01:00
2022-10-15T21:25:47+02:00
PROMETHEUS11
Sziasztok!

Segítségre lenne szükségem, sajnos megint elakadtam. 

Azt szeretném, ha egy makró ne fusson le ha az Excel létrehozásának dátuma 5 vagy több óránál már elmúlt.

Tehát ha maga az excel régebbi 5 óránál, ne fusson a makró. Mit kéne írnom feltételnek?

Ezzel próbálkoztam: 

Sub Datum()
Dim ido As Date
 If ido = ActiveWorkbook.BuiltinDocumentProperties("Creation Date").Value < Now() - TimeSerial(5, 0, 0) Then ....


ActiveWorkbook.BuiltinDocumentProperties("Creation Date").Value
Valamilyen oknál fogva a fenti sor nekem 2015.06.05 19:19:34 -et ad eredményül, pedig az Excelt tegnap hoztam létre ekkor: 2020. ‎december ‎18., ‎Tegnap, ‏‎21:20:40 . A rendszeridő a számítógépen nincs elállítva.



Köszönöm a segítséget!
Mutasd a teljes hozzászólást!
Szia!
Talán a  Last Save Time paraméter a BuiltinDocumentProperties - nél használható lehet erre. De ez addig hibát okoz, amíg nincs mentve a dokumentum.
Ha azt szeretnéd, hogy 5 óránál tovább ne legyen nyitva pl. akkor a munkafüzet Workbook_Open eseménykezelőjében lefuttatnál egy Save utasítást. Ezután ez lenne a Last Save Time eredménye, így ehhez lehet hasonlítani az eltelt időt. Továbbá, hogy a közben esetleg végrehajtott mentések ne zavarjanak be, ezt az időpontot betenném egy változóba és ezt használnám később.
Esetleg az is elég lenne, ha a megnyitáskor egy Publikus változóba betennéd a nyitás időpontját és ezt használnád az eltelt idő mérésére.
Üdv.
Mutasd a teljes hozzászólást!

  • Szia Prometheus11!

    Kipróbáltam. Új üres munkafüzet létrehozásánál az általad várt eredményt adja, de ha egy meglévő sablon alapján készítek új munkafüzetet, akkor már a sablon létrehozásának dátumát kapom.

    üdvözlettel
    verax
    Mutasd a teljes hozzászólást!
  • Szia!
    Talán a  Last Save Time paraméter a BuiltinDocumentProperties - nél használható lehet erre. De ez addig hibát okoz, amíg nincs mentve a dokumentum.
    Ha azt szeretnéd, hogy 5 óránál tovább ne legyen nyitva pl. akkor a munkafüzet Workbook_Open eseménykezelőjében lefuttatnál egy Save utasítást. Ezután ez lenne a Last Save Time eredménye, így ehhez lehet hasonlítani az eltelt időt. Továbbá, hogy a közben esetleg végrehajtott mentések ne zavarjanak be, ezt az időpontot betenném egy változóba és ezt használnám később.
    Esetleg az is elég lenne, ha a megnyitáskor egy Publikus változóba betennéd a nyitás időpontját és ezt használnád az eltelt idő mérésére.
    Üdv.
    Mutasd a teljes hozzászólást!
  • ...továbbá

    az  ActiveWorkbook.BuiltinDocumentProperties("Creation Date").Value elfogadja az értékadást.
    Tehát az új munkafüzet rendszerbe állításakor, akár ebbe a változóban, akár egy, általad létrehozott konstansban is tárolhatod a létrehozás időpontján (=Now()). Ez utóbbi esetén - nyilvánvalóan - gondoskodni kell arról, hogy a munkafüzet bezárása után is eltárolja a fájl.

    üdvözlettel
    verax
    Mutasd a teljes hozzászólást!
  • Hát igazából mindkettőtöknek  (Fferi és Verax) rányomnám az 'Elfogadás megoldásként' gombot, mert mindkét verzió jó, csak más megközelítésből. Viszont Fferi megoldását kell használnom, mert úgy néz ki az a leginkább kompatibilis a munkámhoz.

    Köszönöm a segítséget!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd