Stránka 1 z 1

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

Napsal: 04 pro 2015 13:24
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

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

Napsal: 05 pro 2015 21:45
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.

Re: Makro při událsti before close nejede správně  Vyřešeno

Napsal: 07 pro 2015 12:26
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 :-)