Dobrý den, potřeboval bych poradit jak nastavit makro, aby se automaticky spouštělo v 5min intervalu.
děkuji
Automatické spuštění makra v pravidelných intervalech
Moderátor: Mods_senior
Re: Automatické spuštění makra v pravidelných intervalech
Například pomocí funkce Timer (Google najde stovky stránek na toto téma)
kod zkpírován odsud: http://wall.cz/index.php?m=topic&id=26298
Dodatečně přidáno po 12 minutách 39 vteřinách:
A nebob použít OnTime, srozumitelně vysvětleno zde: http://www.gymzv.sk/~vyuka/informatika/ ... _algo.html
kod zkpírován odsud: http://wall.cz/index.php?m=topic&id=26298
Kód: Vybrat vše
Sub Prodleva(Delka As Single)
Dim Kon As Single
Kon = Timer + Delka
Do While Timer < Kon
DoEvents
Loop
End SubA nebob použít OnTime, srozumitelně vysvětleno zde: http://www.gymzv.sk/~vyuka/informatika/ ... _algo.html
- elninoslov
- Level 2.5

- Příspěvky: 386
- Registrován: 12 čer 2013 23:40
Re: Automatické spuštění makra v pravidelných intervalech
S časovačmi v Excel VBA by som bol opatrný.
a.) Oneskorenie makrom (uvedený príklad) - makro stále beží, a áno dokáže lagovať. Plus žiadne ďalšie makro počas jeho behu už nespustíte.
b.) Naplánovanie OnTime - nepredvídateľné chovanie, ktoré sme už tiež na wall.cz riešili a nedobrali sa konca. Nepravidelne a nepredvídateľne sa totiž procedúra spustila aj po zatvorení zošitu (!). Pričom nezáležalo na tom, či bola pred zatvorením korektne zrušená pomocou Scheduled:=False. Proste ak sa zošit zavrel pred vykonaním naplánovaného OnTime, tak sa niekedy sám otvoril a procedúra sa vykonala, zošit ostal otvorený. Ale nie vždy - nepredvídateľne.
c.) Použitie Windows Timeru - celkom slušné, až na jednu podstatnú vec. Ak nastane Tick v dobe pauznutia makra (normálny stav napr. pri vývoji zošitu, debugovaní chyby, kontroly či ladenia a pod), tak zkolaboval celý Excel, takže neuložené veci nanovo. Je to väčšia otrava ako sa možno na prvý pohľad zdá.
Ak to všetko nebolo iba pošahanými Excelmi nás, čo sme to skúšali, tak zastávam názor, že na toto nemá Excel VBA spoľahlivé nástroje. Je to 1/2 roka možno rok, možno nejaká aktualizácia to riešila. Ja tomu neverím.
a.) Oneskorenie makrom (uvedený príklad) - makro stále beží, a áno dokáže lagovať. Plus žiadne ďalšie makro počas jeho behu už nespustíte.
b.) Naplánovanie OnTime - nepredvídateľné chovanie, ktoré sme už tiež na wall.cz riešili a nedobrali sa konca. Nepravidelne a nepredvídateľne sa totiž procedúra spustila aj po zatvorení zošitu (!). Pričom nezáležalo na tom, či bola pred zatvorením korektne zrušená pomocou Scheduled:=False. Proste ak sa zošit zavrel pred vykonaním naplánovaného OnTime, tak sa niekedy sám otvoril a procedúra sa vykonala, zošit ostal otvorený. Ale nie vždy - nepredvídateľne.
c.) Použitie Windows Timeru - celkom slušné, až na jednu podstatnú vec. Ak nastane Tick v dobe pauznutia makra (normálny stav napr. pri vývoji zošitu, debugovaní chyby, kontroly či ladenia a pod), tak zkolaboval celý Excel, takže neuložené veci nanovo. Je to väčšia otrava ako sa možno na prvý pohľad zdá.
Ak to všetko nebolo iba pošahanými Excelmi nás, čo sme to skúšali, tak zastávam názor, že na toto nemá Excel VBA spoľahlivé nástroje. Je to 1/2 roka možno rok, možno nejaká aktualizácia to riešila. Ja tomu neverím.
Re: Automatické spuštění makra v pravidelných intervalech
nakonec vyřešeno takto a zatím to běží bez problémů:
Sub auto_open()
'
' auto_open Makro
'
'
ActiveWorkbook.UpdateLink Name:= _
"XXX.xlsx" _
, Type:=xlExcelLinks
Application.OnTime Now + TimeValue("00:05:00"), "auto_open"
End Sub
děkuji za rady
Sub auto_open()
'
' auto_open Makro
'
'
ActiveWorkbook.UpdateLink Name:= _
"XXX.xlsx" _
, Type:=xlExcelLinks
Application.OnTime Now + TimeValue("00:05:00"), "auto_open"
End Sub
děkuji za rady
-
guest
Re: Automatické spuštění makra v pravidelných intervalech
Určitě ne žádný Timer (žádný korektní v Excelu/VBA není a nasazovat API je cesta do pekel).
OnTime je opravdu nevyzpytatelný a nebezpečný pro čas úprav, jak píše elninislov.
Jestli řešíte nějakou burzu apod., pak to chce doplněk (a technologii ve smyslu "real time data"), nebo funkční webovou službu.
OnTime je opravdu nevyzpytatelný a nebezpečný pro čas úprav, jak píše elninislov.
Jestli řešíte nějakou burzu apod., pak to chce doplněk (a technologii ve smyslu "real time data"), nebo funkční webovou službu.
Re: Automatické spuštění makra v pravidelných intervalech
Jedná se o vizualizaci - v tom file se nepracuje, pouze je celý den zobrazen a jeho jediná funkce je, že si musí v pravidelných intervalech aktualizovat propojení na jiné soubory. Řešení který jsem psal výše funguje pro tenhle účel bez problémů - zacyklení makra s 5min prodlevouxlnc píše:Určitě ne žádný Timer (žádný korektní v Excelu/VBA není a nasazovat API je cesta do pekel).
OnTime je opravdu nevyzpytatelný a nebezpečný pro čas úprav, jak píše elninislov.
Jestli řešíte nějakou burzu apod., pak to chce doplněk (a technologii ve smyslu "real time data"), nebo funkční webovou službu.
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek

