Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak ukončit práci Excelu, případně sešitu. Excel se sám ukončí ... aneb jak někoho zmást :)
Doplněno 10.4.2013
V článku se dozvíte jak lze pomocí VBA ukončovat otevřené sešity, nebo uzavřít přímo aplikaci Microsoft Excel. Článek je rozdělen na tyto kapitoly:
Zavře aktivní sešit a umožňí uživateli rozhodnout, zda případné změny, mají být uloženy.
ActiveWorkbook.Close
Zavřít sešit bez uložení změn.
ActiveWorkbook.Close False
' Zavře aktivní sešit bez uložení změn
' možno zapsat i takto
' ActiveWorkbook.Close SaveChanges:=False
Zavřít sešit a uložit změny.
ActiveWorkbook.Close True
' Zavře aktivní sešit a uloží všechny změny
' další možnost uložení
' ActiveWorkbook.Close SaveChanges:=True
' Zabranění zobrazení systemových hlášek
Application.DisplayAlerts = False
Chceteli zavřít určitý sešit (neaktivní)
Workbooks("sesit.xls").close False
' Workbooks("sesit.xls").Close SaveChanges:=False
Ukončení aplikace Excel se provede příkaze Application.Quit
Application.Quit
Potřebujeme za 30 vteřin po spuštění makra ukončit Excel. Řešení je jednoduché. Použijeme v prvním makru funkci OnTime, která po 30 vteřinách spustí druhé makro s funkcí pro vypnutí (a zamezení chybových hlášek).
Kód se skládá ze dvou části:
Sub Ukonci30sec()
Application.OnTime Now + TimeValue("00:00:30"), "MujKonec"
End Sub
Sub MujKonec()
Application.DisplayAlerts = False
Application.Quit
End Sub
Využíváte automatické ukončování vašich sešitů?
Článek byl aktualizován: 19.09.2020 11:07
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Přidáno: 10.04.13 11:33
Dobrý den, existuje makro, aby se uzavřel jen jeden z otevřených sešitů? jindra.strelec(at)tiscali.cz
Přidáno: 10.04.13 16:11
To Jindra Střelec: Jasně
ActiveWorkbook.Close
bez dotazu na uložení
ActiveWorkbook.Close False
Přidáno: 10.04.13 19:04
Pro uchlácholení Excelu, že má vše uloženo, se dá také použít ActiveWorkbook.Saved = True. Automatické ukončení sešitu nepoužívám. Zpravidla je totiž potřeba automaticky sešit 1. otevírat, 2. nechat proběhnout makro a za 3. sešit uzavřít. Tj. automatizaci úlohy musí zajistit externí skript (naplánovaná úloha ve Windows, VBScript, dnes možná i PowerShell). Stávalo se, že Excel zůstával pro rozběhnutí skriptu "viset" a jedině v takovém případě bych viděl smysl ukončení Excelu po časové prodlevě. Jinak je to docela riziková věc a jsem pro korektní uzavírání sešitu na konci práce (tj. bez OnTime). OnTime ani nemusí v případě zaneprázdnění Excelu proběhnout. Přes API se nechá zajistit i pozdržení kódu VBA, dokud neproběhne jiný proces. V průběhu dlouhého procesu je rovněž dobré dát systému šanci provést si jeho úlohy (Do Events uvnitř cyklu). Jinak je možné naprogramovat i sebedestrukční makro v sešitu ve stylu Mission Impossible.
Přidáno: 11.04.13 12:42
Děkuji za bleskovou reakci ;-) Pro mojí potřebu bohatě postačuje: "Zavřít sešit bez uložení změn."
Přidáno: 11.04.13 16:02
To Jindra Střelec: Nemožné hned, zázraky na počkání ;)
Přidáno: 13.04.13 08:19
To Petr Pecháček: Děkuji za doplnění.
Přidáno: 21.08.13 11:40
Dobrý deň mam naprogramované makro na overenie hesla cez internetový portál ale neviem ako zabezpečiť aby sa excelový zošit uzavrel ak sa daná hláška len zlodí bez vyplnenia a potvrdenia odoslania na overenie.
Přidáno: 04.10.13 06:22
Ahoj, poraďte prosím: jak dosáhnu, aby ve furmulářovém oknu byl zobrazen údaj z buňky a nedal se přepsat. Jak zapsat do formulářového okna funkci (opět nepřepsatelnou) např. DNES. Jak zajistit, aby form. okno vyplnilo celou obrazovku na jakémkoliv monitoru? děkuji kemars@volny.cz
Přidáno: 31.01.14 09:19
Dobrý den. Prosím o radu ohledně provedení aktualizace dat v zavřeném souboru. Jedná se o to, že mám sešit 1, který čerpá data ze sešitu 2 a ten další data ze sešitu 3. Pokud se mi změní data v sešitu 3 a sešit 2 neotevřu a nezaktualizuji data, tak se mi v sešitu 1 data neobjeví. Děkuji za radu.
Přidáno: 22.04.14 10:14
Dobrý den, vytvořil jsem si makro kdy čerpám informace z jiného sešitu ten si otevřu v rámci makra, provedou se všechny procedury a na konci mi excel zamrzne na příkazu, kerý uzavírá sešit, z kterého jsem čerpal data. To se děje, když makro spustím F5, když jsem hledal chybu po jednotlivích částech, pomocí F8, tak vše proběhne jak chci a chyba se neprojeví. Zkoušeno v Office 2013, zkoušel jsem i příkaz(na zavření sešitu), který se mi uložil při nahrávání makra a byl formulovaný jinak. Setkal jste se s tím někdy někdo? Moje domněnka je, že má proběhnout něco v rámci excelu, ale jelikož je to tak rychlí tak se to kousne. Jinak ještě doplním, že sešit z daty, z kterého čerpám, se otvírá pouze pro čtení.
Přidáno: 26.05.14 08:17
Tak problém vyřešen tím že před příkaz zavření sešitu vložen s příkazem který zobrazí že se sešit bude zavírat. Po tom to příkazu jde už vše správně.
Přidáno: 23.07.14 10:00
Dobrý den, jak lze zjistit, je-li ještě nějaký sešit otevřený abych mohl pak zavřít celý Excel? Děkuji
Přidáno: 14.07.16 10:46
Dobrý den, vytvořila jsem makro pro automatické zavření po 15 minutách Application.OnTime Now + TimeValue("00:15:00"), "Konec" Toto normálně funguje, ale pokud zavřu sešit o něco dříve, tak se mi v daný čas soubor otevírá, aniž bych se o to snažila. Děkuji za radu
Přidáno: 15.07.16 07:12
To Veronika: -- Predčasné ukončenie OnTime(Netestované):
Vložiť do bežného modulu:
Public dTime As Date
Sub RunOnTime()
dTime = Now + TimeValue("00:15:00")
Application.OnTime dTime, "Konec"
End Sub
Vložiť do modulu ThisWorkbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'CancelOnTime
Application.OnTime dTime, "Konec", , False
End Sub
Přidáno: 29.07.16 06:54
Moc děkuji za odpověď, již to funguje jak má
Přidáno: 30.08.16 12:55
Zdravím, mám problém, u kterého netuším jak dál. Mám soubor ve kterém se pouští automaticky po zpuštění Form do kterého načítám data. Po potvrzení ve formuláři otevře dle podmínek další soubor a schovám Form menu abych mohl v souboru pracovat. Potreboval bych aby se po zavrení souboru se opět otevřelo Formmenu. Díky
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |