MS Excel – uložení a zavření po nečinnosti
Pokud například v zaměstnání používáte tabulku excelu ve více lidech, určitě jste již narazili na problém, kdy jeden z uživatelů zapomene sešit zavřít a vy pak do něj nemáte přístup pro zápis. Ukážeme vám jednoduchý způsob, jak si v takovémto excelu naprogramovat automatické uložení a zavření po určité době nečinnosti.
V minulosti se to řešilo vytvořením sdíleného sešitu, ale tato funkce již není nadále podporována. Stále lze použít, ale některé funkce a možnosti ve sdíleném souboru již nejsou možné, například vkládání odkazů na externí zdroje.
Další možností je sdílení souboru na OneDrive nebo na jiných sharepointech, ale tato možnost se hodí spíše pro firemní účty, které mají sdílené úložiště na OneDrive.
V tomto článku vám popíšeme, jak si do vašeho excelovského souboru přidat funkci, která zajistí že pokud jej někdo zapomene zavřít, tak po nastavené době neaktivity (nepracuje s ním) bude sešit uložen a uzavřen.
Vytvoření makra pro automatické uložení a uzavření excelu
- Otevřete sešit Excelu, pro který chcete nastavit makro
- Stiskněte Alt + F11, otevře se vám editor maker
- Rozklikněte ThisWorkbook na levé straně okna, otevře se vám editor.
- Zkopírujte tento kód a vložte jej do okna pro kód
Private Sub Workbook_BeforeClose(Cancel As Boolean) Call TimeStop End Sub Private Sub Workbook_Open() Call TimeSetting MsgBox "POZOR: Sešit bude po 30 minutách neaktivity automaticky uložen a uzavřen" End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Call TimeStop Call TimeSetting End Sub
- Kód obsahuje také funkci, která po otevření excelu zobrazí dialogové okno s hláškou POZOR: Sešit bude po 30 minutách neaktivity automaticky uložen a uzavřen. Můžete si hlášku jakkoliv upravit, jen nepoužívejte uvozovky.
- V horní nabídce zvolte Insert –> Module
- Vložte do okna modulu tento kód:
Dim CloseTime As Date Sub TimeSetting() CloseTime = Now + TimeValue("00:30:01") On Error Resume Next Application.OnTime EarliestTime:=CloseTime, _ Procedure:="SavedAndClose", Schedule:=True End Sub Sub TimeStop() On Error Resume Next Application.OnTime EarliestTime:=CloseTime, _ Procedure:="SavedAndClose", Schedule:=False End Sub Sub SavedAndClose() ActiveWorkbook.Close Savechanges:=True End Sub
- Upravte si dobu, po jaké má být excel uzavřen v řádku 3 (formát „HH:MM:SS“)
- Nyní můžete Visual basic editor uložit disketou v horním panelu a zavřít křížkem.
- Uložte excel. Uložit jako –> sešit s podporou maker .xlsm
- Hotovo, nyní po otevření excelu se objeví upozornění že po zadané době neaktivity bude ukončen. Jakmile dosáhne neaktivita nastaveného limitu, sešit se uloží a zavře.
Pokud například v zaměstnání používáte tabulku excelu ve více lidech, určitě jste již narazili na problém, kdy jeden z uživatelů zapomene sešit zavřít a vy pak do něj nemáte přístup pro zápis. Ukážeme vám jednoduchý způsob, jak si v takovémto excelu naprogramovat automatické uložení a zavření po určité době nečinnosti.