< návrat zpět

MS Excel


Téma: automatická aktualzace rss

Zaslal/a 3.10.2022 7:42

Zdravím
Potřebuji následující makro.
Sešit např. MAKRO bude stále otevřen.
V danou hodinu dne provede aktualizaci (data aktualizovat vše), uloží, otevře sešit MAKRO 1, uloží a zavře.
Chci to zautomatizovat kde sešit MAKRO bude stále otevřen. Aktualizace by měla probíhat každý den např. 4:00
Dokáže někdo pomoc? Moc děkuji

Zaslat odpověď >

Strana:  1 2 3   další »
#053534
elninoslov
Takže v súbore "MAKRO.xlsm" bude makro, ktoré naplánuje v udalosti Application.OnTime (na najbližší čas 04:00 v noci) spustenie druhého makra v tomto súbore "MAKRO.xlsm". To druhé makro spustí aktualizáciu všetkých dát v tomto súbore "MAKRO.xlsm", uloží tento súbor. Stále sme v tom istom súbore "MAKRO.xlsm".
A teraz, načo sa má otvárať súbor "MAKRO 1.xlsx" (.xlsm ?), ukladať a zatvárať? Pri jeho otváraní dôjde k nejakej udalosti jeho vlastného makra Workbook_Open či aktualizácii dotazov? Ak nie, tak je popisovaná manipulácia zbytočná.citovat
#053535
avatar
MAKRO ANO.
MAKRO1 se má otevírat proto, aby se aktualizovali hodnoty (i když to možná udělá) ale hlavně proto, že publikuji MAKRO1 na webu a potřebuji to uložit.citovat
#053536
elninoslov
Vyskúšajte to s Vašim súborom a nejakým skorším časom, aby ste nečakal do rána :)
Možno bude treba aktualizovať Connections, PivotTables, Queries aktualizovať samostatne po jednom, s vypnutím BackgroundQuery, aby to čakalo na dokončenie. Neviem, čo tam máte.
Pri pokusoch nezabudnite potom pokusný čas z naplánovaných zmazať pomocou SERVICE_PROC_STOP.
Sub Aktualizacia_Dat()
Dim Cesta As String

With ThisWorkbook
.RefreshAll
Cesta = .Path & "\"
.Save
End With

With Workbooks.Open(Cesta & "MAKRO1.xlsm", True)
.RefreshAll
.Close True
End With

Application.OnTime TimeValue("04:00:00"), "Aktualizacia_Dat"
End Sub

Sub SERVICE_PROC_STOP()
On Error Resume Next
Application.OnTime TimeValue("04:00:00"), "Aktualizacia_Dat", Schedule:=False
End Sub
citovat
#053569
avatar
Ahoj

Udělal jsem to takto: když jsem zakázal aktualizovat data na pozadí, tak čeká až se aktualizuje, pak se otevře, uloží a zavře. Ale bohužel se mi nedaří to spustit v hodinu kterou potřebuji. Když spustím manuálně makro Update, tak to dělá co má. Nějaké nastavení času???

Sub UpdateCell()

Application.OnTime TimeValue("10:28:00"), "Aktualizacia_Dat"
ActiveWorkbook.RefreshAll
Call mojemakro

End Sub

Sub mojemakro()
Workbooks.Open "MAKRO1.xlsm"

Workbooks("MAKRO1").Close SaveChanges:=True

End Subcitovat
#053570
elninoslov
A kde máte Application.OnTime s nejakým Vašim volaným makrom? Ja tam vidím iba moje "Aktualizacia_Dat". Také makro Vy neuvádzate. Ak je namiesto môjho "Aktualizacia_Dat" Vaše makro UpdateCell, potom ho musíte volať/nastaviť v Application.OnTime
Application.OnTime TimeValue("10:28:00"), "UpdateCell"citovat
#053571
avatar
Ano nevšiml jsem si. Tak je to správně? zkoušel jsem ale stejně nic

Sub UpdateCell()

Application.OnTime TimeValue("10:57:00"), "UpdateCell"
ActiveWorkbook.RefreshAll
Call mojemakro

End Sub

Sub mojemakro()
Workbooks.Open "MAKRO1"

Workbooks("MAKRO1").Close SaveChanges:=True

End Subcitovat
#053573
elninoslov
Čo znamená "stejně nic"?
Nespustí sa naplánované makro? Mne áno.
Spustí ale neaktualizuje sa? Mne áno.
Neotvorí MAKRO1? Mne áno.
Otvorí ale nezavrie - tu nastáva chyba. Workbooks() potrebuje názov súboru, teda "MAKRO1.xlsm", nie iba "MAKRO1".
Vyhodí nejakú chybu? Mne áno, viď vyššie.
Skúste nepoužiť ActiveWorkbook ale použite to čo ja teda ThisWorkbook. Pretože nie je zaručené, že v momente naplánovaného spustenia makra, bude aktívny zrovna zošit s makrami.
Skúste dať pred Close ešte Save
Sub mojemakro()
With Workbooks.Open(ThisWorkbook.Path & "\" & "MAKRO1.xlsm")
.Save
.Close True
End With
End Sub
citovat
#053576
avatar
Změnil jsem to na ThisWorkbook + .save, ale makro "UpdateCell" se vůbec nespustí.Nemusí se ta funkce třeba někde povolit? Když vyvolám "UpdateCell" ručně jde celá úloha. Když vyvolám "mojemakro" ručně jde taky.citovat
#053577
avatar
Když vynechám otevření, uložení a zavření. tohle musí fungovat přece ne?
Ale nefunguje

Sub UpdateCell()
Application.OnTime TimeValue("12:21:00"), "UpdateCell"
ActiveWorkbook .RefreshAll
End Subcitovat
#053578
elninoslov
Dajme tomu, že je 12:30:00. Aký čas nastavujete v makre? Napr. 12:32:00? Musí sa spustiť o 12:32:00. Potom ako sa vykoná, je opäť naplánované na 12:32:00 ale nie dnes.
Urobte pokus, nastavte v tomto pokusnom makre čas teraz + 2 min, aby ste mal čas. V makre UpdateCell nastavte čas teraz + 4 min. Spustite toto makro Pokus. O 2 min sa spustí makro UpdateCell, to prebehne a svoje ďalšie spustenie nastaví o ďalšie 2 min. Teda behom 4 min, uvidíte 2x spustenie makra UpdateCell. A ďalšieho sa dočkáte až zajtra (teda to je predpoklad, že to tak funguje, nikdy som neskúšal čakať deň).
Sub Pokus()
Application.OnTime TimeValue("12:32:00"), "UpdateCell"
End Sub

Sub UpdateCell()
Application.OnTime TimeValue("12:34:00"), "UpdateCell"
ThisWorkbook.RefreshAll
Call mojemakro
End Sub
citovat

Strana:  1 2 3   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje