Stránka 1 z 1

Jak zastavit bezici makro jinym makrem?

Napsal: 29 úno 2016 18:53
od jiri255
Zdravím,
a prosím o radu, zdali někdo nevíte, jak zastavit běžící makro jiným makrem?
Do ThisWorkbook jsem si dal následující kód, který po otevření excelu spustí
makro "UpDate", které každou minutu aktualizuje excel.

Kód: Vybrat vše

Private Sub Workbook_Open()
 Application.Run "UpDate"
 End Sub

Což funguje skvěle, ale mám v tom excelu tlačítko a pod ním mám jiné makro
a potřeboval bych nějak v tom makru napsat prvně zastavení toho makra "UpDate"
něco jako "Application.Stop "UpDate" což nefunguje, pak můj kód a na konci zase
opětovné spuštění což jediné vím to je to "Application.Run "UpDate" "

Kód: Vybrat vše

Sub MojeMakro()
'tady nějak zastavit makro "UpDate"

'část pro moje makro

'a opět spuštění toho
Application.Run "UpDate"
End Sub


Předem děkuji za pomoc

Re: Jak zastavit bezici makro jinym makrem?

Napsal: 03 bře 2016 17:24
od cmuch
Můžeš zkusit

Kód: Vybrat vše

Dim TimerActive As Boolean
Sub StartTimer()
    'odstartovani timeru
    Start_Timer
End Sub

Private Sub Start_Timer()
    TimerActive = True
    Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
End Sub

Private Sub Stop_Timer()
    'zastaveni timeru
    TimerActive = False
End Sub

Private Sub Timer()
    If TimerActive Then
        ActiveSheet.Cells(1, 1).Value = Time
        Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
    End If
End Sub

Re: Jak zastavit bezici makro jinym makrem?

Napsal: 04 bře 2016 19:25
od jiri255
děkuji za odpověď otestoval jsem to a nějak se mi to nepodařilo zprovoznit :-(
měl jsem to celé vložené v ThisWorkbook uložené jako .xlsm a povolená makra,
ale nic to nedělá asi jsem někde udělal chybu?

Re: Jak zastavit bezici makro jinym makrem?

Napsal: 04 bře 2016 20:11
od cmuch
Nene, dej to do normálního modulu.

Re: Jak zastavit bezici makro jinym makrem?

Napsal: 06 bře 2016 18:58
od jiri255
aha, tak už jsem na to asi přišel teda jestli to mám tak správně a nebude to dělat nějaký problémy?
tento kód jsem dal do normálního modulu:

Kód: Vybrat vše

Dim TimerActive As Boolean
Sub StartTimer()
    'odstartovani timeru
    Start_Timer
End Sub

Private Sub Start_Timer()
    TimerActive = True
    Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
End Sub

Sub Stop_Timer()
    'zastaveni timeru
    TimerActive = False
End Sub

Private Sub Timer()
    If TimerActive Then
        ActiveSheet.Cells(1, 1).Value = Time
        Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
    End If
End Sub

a jelikož se to nechtělo automaticky spouštět po startu, tak tento jsem přidal do ThisWorkbook:

Kód: Vybrat vše

Private Sub Workbook_Open()
 Application.Run "StartTimer"
End Sub

a teď je to myslím OK, po otevření sešitu se to samo spustí a tím makrem "Stop_Timer"
to v případě potřeby zastavím a pak si to zase tím "Start_Timer" spustím což funguje fakt
skvěle díky za pomoc :thumbup:

Re: Jak zastavit bezici makro jinym makrem?

Napsal: 07 bře 2016 06:25
od cmuch
Já myslím, že to tak můžeš nechat.

Re: Jak zastavit bezici makro jinym makrem?  Vyřešeno

Napsal: 07 bře 2016 17:23
od jiri255
OK nechám to tedy takto. Děkuji za pomoc funguje skvěle :clap: