Stránka 1 z 1

Excel zastavení makra

Napsal: 09 lis 2016 14:24
od Diesels
Dobrý den,

Mám dva tlačítka jedno pro spuštění makra kvůli aktualizaci dat v určitém časovém intervalu. Můj dotaz se týká druhého tlačítka, které by mělo tuto aktualizaci zastavit. Bohužel se mi to nedaří zprovoznit.
Doposud jsem to řešil pomocí CTRL+BREAK.

Tlačítko Update

Kód: Vybrat vše

Private Sub CommandButton1_Click()
'refresh
ActiveWorkbook.RefreshAll

alertTime = Now + TimeValue("00:00:30") 'hh:mm:ss
    Application.OnTime alertTime, "Refresh"
End Sub


Tlačítko pro ukončení Aktualizace:

Kód: Vybrat vše

Private Sub CommandButton2_Click()
  ???
End Sub

Re: Excel zastavení makra

Napsal: 09 lis 2016 14:31
od atari
Tomu nerozumím. Pokud spustíš ve VBA příkaz, tak ho musíš nechat doběhnout. Zastavit můžeš pouze další běh kodu po skončení nějakého příkazu. CTRL BREAK je násilné zastavení, které může způsobovat nekonzistentnost dat.

Re: Excel zastavení makra

Napsal: 09 lis 2016 14:51
od Diesels
atari píše:Tomu nerozumím. Pokud spustíš ve VBA příkaz, tak ho musíš nechat doběhnout. Zastavit můžeš pouze další běh kodu po skončení nějakého příkazu. CTRL BREAK je násilné zastavení, které může způsobovat nekonzistentnost dat.


Ano, ale vzhledem k výše uvedenému makru pro aktualizaci, které se neustále opakuje, ten konec není...

Napadlo mě přidat do makra pro spuštění aktualizace něco ve smyslu If Range("a1").value = "stop" Then zastavení aktualizace/dokončení marka

Do Buňky A1 bych pomocí tlačítka pro zastavení vložil hodnotu "stop"....

Ale nedařilo se mi to zprovoznit

Re: Excel zastavení makra

Napsal: 09 lis 2016 15:41
od petr22
1. zalozit klic v registru, kde bude napr pouze 0 nebo 1, pricemz 1 znamena ze to ma bezet a nula ze se to ma zastavit

2. spustene makro zapise na zacatku 1, nacita data a pri kazdem cyklu kontroluje jestli je tam 1

3. druhe tlacitko zapise 0, takze makro dokonci cyklus a zastavi se, o cemz da hlasku uzivateli

Re: Excel zastavení makra

Napsal: 09 lis 2016 15:51
od atari
V tom případě máš špatně napsané zadání. Ty nechceš zastavovat makro, ale měnit podmínky kdy se má spustit refreš.
Zadat hodnotu je velmi jednoduché:

Kód: Vybrat vše

Private Sub CommandButton2_Click()
Range("a1") = "stop"
End Sub


Dodatečně přidáno po 2 minutách 36 vteřinách:
Udělat to přes ty registry je elegantnější, než ten "STOP" v buňce A1.

Re: Excel zastavení makra

Napsal: 09 lis 2016 16:05
od guest
Možná by stačilo podívat se do nápovědy, jak zrušit časové nastavení makra přes OnTime...

Násilně zastavit již běžící makro je hloupost.

Re: Excel zastavení makra

Napsal: 09 lis 2016 16:40
od Diesels
xlnc píše:Možná by stačilo podívat se do nápovědy, jak zrušit časové nastavení makra přes OnTime...

Násilně zastavit již běžící makro je hloupost.


Vyřešeno pomocí "Application.OnTime TimeToRun" funkce....

Děkuji