Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-soubory » excel-vba-omezeni-platnosti-dokumentu

Omezení platnosti dokumentu - Excel VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Dávate k dispozici ceníky v MS Excel? Chce zamezit jejich použivání po skončení platnosti?

Úvodem

Obdržel jsem zajimavý dotaz. Jak zamezit otevření starého dokumentu. Když už jsem psal odpověď, proč ji zárověň nepublikovat, třeba pomůže i někomu jinému.

Pokud máte na webu ke stažení ceník výrobku v Excelu, je vhodné tomuto dokumentu určit platnost. Po spuštění neaktuálního ceníku obdrží uživatel informaci, že je neaktuální a případně můžeme tento dokument automaticky zavřít. Jak na to popíšu v tomto článku.

VBA kód

Pro zjištění, zda je dokument platný. Jednoduchá verze která zjistí zda je dokument starší než aktuální datum. V případě že ano zobrazí dialogové okno.

Private Sub Workbook_Open() PlatiDo = DateValue("30.11.2011") 'plati do 30.11.2011 Dnes = Date If PlatiDo < Dnes Then MsgBox "Dokument je již neplatný." End If End Sub

Poznámka: Nahrát do ThisWorkBook

VBA kód 2

Rozšíření předchozího příkladu o automatické uzavření neplatného dokumentu v MS Excelu.

Private Sub Workbook_Open() PlatiDo = DateValue("30.11.2011") 'plati do 30.11.2011 Dnes = Date If PlatiDo < Dnes Then MsgBox "Dokument je již neplatný. Stahněte si novou verzi na officel.lasakovi.com, tento ceník bude uzavřen." End If ActiveWorkbook.Close False End Sub

Poznámka: Dialogové okno můžeme doplnit o informaci, kde může čtenář najít aktuální verzi.

Další možností rozšíření?

Jelikož možností jak výše uvedený kód rozšířit je spousta, pokusím se doplnit dle dotazů v komentářích.

Článek byl aktualizován: 19.09.2020 11:07

Odměna

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.


Pavel Lasák - autor webu

Pavel Lasák

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ů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Jirka

Přidáno: 30.01.12 13:33

Pokoušel jsem se makro do dokumentu zapracovat, ale nefunguje to. Funkce private nepovolena a pak chyba v syntaxi. Rád bych ale spíše omezil platnost některých svých word dokumentů s nabídkami. Připravuju je přes OpenOffice. Pokud by existovalo něco pro PDF, bylo by to ještě lepší. Děkuji za radu jirka

Pavel Lasák

Přidáno: 30.01.12 18:10

To Jirka: Zkoušíte to v Excelu? Je kód vložen do ThisWorkBook? Bohužel OpenOffice neznám.

Jirka

Přidáno: 30.01.12 21:47

OpenOffice má v sobě taktéž makra a mají fungovat podobně jako v excelu. Nevím kde je v excelu ThisWorkBook.

Jirka

Přidáno: 31.01.12 13:58

Zkouším to v openoffice. Jsou tam podobná ve VBA....už se mi to podařilo zapsat, vypadá to takto: Private Sub Workbook_Open() PlatiDo = DateValue("31.1.2012") 'plati do 31.1.2012 Dnes = Date If PlatiDo < Dnes Then MsgBox "Dokument je již neplatný. Stahněte si novou verzi na officel.lasakovi.com, tento ceník bude uzavřen." End If ActiveWorkbook.Close False End Sub ale píše mi to BASIC, chyba v syntaxi, neočekávaný symbol If a je přitom označen tento řádek Dnes = Date If

Pavel Lasák

Přidáno: 31.01.12 18:28

To Jirka: Bohužel sinataxi OpenOffice neznám. Zkuste na jejich webu.

jirka

Přidáno: 31.01.12 21:50

I tak moc díky. Aktuálně to řeším na www.openoffice.cz pokud chcete nahlédnout, jak moc a jestli vůbec je VBA odlišný v obou aplikacích.

Pavel Lasák

Přidáno: 01.02.12 17:29

To Jirka: Děkuji za info, rád nahlédnu, ale zatím zůstanu u VBA pro MS Office.

David

Přidáno: 22.10.13 09:57

Dobry den Lze se nejakym zpusobem po ukonceni platnosti jeste do souboru dostat? (pri pouziti VBA kod 2) Dekuji za info

Pavel Lasák

Přidáno: 22.10.13 17:32

To David: Řešil jsem tak, že originál byl bez kódu a s kódem sešit odcházel.

Možným řešením může být použití Auto_Open() a poté otevřít soubor skriptem. Je potřeba vyzkoušet.

Cvrcek

Přidáno: 14.04.15 09:13

Dobrý den, uveřejněný kód je výborný,používám vezi 1. chtěl jsem se ale dotázat na jednu věc - šlo by tímto kóde omezit nějak funkce - zobrazení tlačítek,zamezení zápisu...? Kód používám v sešitu,kam si zapisuji poznámky-odvedenou práci v zaměstnání ( mám to pouze pro vlastní potřebu ). Předem děkuji za vaši odpověď.






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 |