Jak zastavit bezici makro jinym makrem?

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)
Zamčeno
jiri255
Level 1.5
Level 1.5
Příspěvky: 105
Registrován: 21 led 2013 18:15

Jak zastavit bezici makro jinym makrem?

Příspěvek 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
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: 02 bře 2011 19:12
Bydliště: Drsná Vysočina :D

Re: Jak zastavit bezici makro jinym makrem?

Příspěvek 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
jiri255
Level 1.5
Level 1.5
Příspěvky: 105
Registrován: 21 led 2013 18:15

Re: Jak zastavit bezici makro jinym makrem?

Příspěvek 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?
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: 02 bře 2011 19:12
Bydliště: Drsná Vysočina :D

Re: Jak zastavit bezici makro jinym makrem?

Příspěvek od cmuch »

Nene, dej to do normálního modulu.
jiri255
Level 1.5
Level 1.5
Příspěvky: 105
Registrován: 21 led 2013 18:15

Re: Jak zastavit bezici makro jinym makrem?

Příspěvek 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:
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: 02 bře 2011 19:12
Bydliště: Drsná Vysočina :D

Re: Jak zastavit bezici makro jinym makrem?

Příspěvek od cmuch »

Já myslím, že to tak můžeš nechat.
jiri255
Level 1.5
Level 1.5
Příspěvky: 105
Registrován: 21 led 2013 18:15

Re: Jak zastavit bezici makro jinym makrem?

Příspěvek od jiri255 »

OK nechám to tedy takto. Děkuji za pomoc funguje skvěle :clap:
Zamčeno

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