Makro při událsti before close nejede správně

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Zamčeno
Budul
nováček
Příspěvky: 4
Registrován: 26 lis 2015 12:15

Makro při událsti before close nejede správně

Příspěvek od Budul »

Zdravim
Mam problém, úplně nevím jak to správně popsat. Tak přikládám soubor.
Při otevření sešitu se spustí odpočet na 20 sec a při uzavření se má zvýšit údaj v listu 2 o jedna. Celý to funguje pokud sešit uzavřu normálně ručně. Ale pokud ho uzavírá makro, tak sice ta část s připočtením proběhne, ale nedojde k přepnuti na list2, ale zapíše se to do aktualního listu.
Kde je chyba?
Díky za rady
Přílohy
test1.xlsm
(16.05 KiB) Staženo 26 x
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3377
Registrován: 24 říj 2008 19:50

Re: Makro při událsti before close nejede správně

Příspěvek od atari »

Taky mě to překvapilo. Událost "beforeClose" zřejmě neumí označit list jako aktivní. Nevím proč, ale to je ten důvod proč to nefunguje, jinýho mě nenapadá. Ovšem při ručním CLOSE to zas funguje, tak nechápu.

Ten "nefungující" příkaz Select je potřeba vynechat:

Kód: Vybrat vše

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Stop
On Error Resume Next
Application.OnTime setcas, procedure:="zavreni", schedule:=False
Worksheets("list2").Cells(1, 1) = Worksheets("list2").Cells(1, 1) + 1
ActiveWorkbook.Save
End Sub
Obecné doporučení: Příkazu "Select" je dobré se vyhýbat. Hodně zpomaluje běh kodu, a pak se snadněji při jeho používání chybuje.
Budul
nováček
Příspěvky: 4
Registrován: 26 lis 2015 12:15

Re: Makro při událsti before close nejede správně

Příspěvek od Budul »

Je to zajímavý, ale díky za řešení, pořád jsem přemejšlel co je špatně a nějak mně nenapadlo to přepsat jinak :-)
Zamčeno

Zpět na „Kancelářské balíky“