dnes je 6.7.2022

Input:

Excel 2007: Makra – VBA – Kompatibilita – 6. část

15.9.2011, , Zdroj: Verlag Dashöfer

Tento seriál se v dílech 1-5 věnoval v nadhledu problémům s prací s různými verzemi Excelu. Tento díl se pokusí završit cvičný projekt, na němž jsme to demonstrovali.

Podkladová úloha: Dnes chceme dotáhnout do plné funkčnosti cvičný projekt, v němž jsme umožnili uživateli vytvářet záložky na buňkách, které jsou pro něj z nějakého důvodu důležité, a potřebuje se k nim umět rychle vrátit.  Budeme chtít vypsat seznam záložek na listu „Zalozky“.

Stáhněte si sešit 2011-19 Kompatibilita.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:

Zatím jsme neřešili problém, jak se sem všechny záložky dostanou, aniž bychom je sem vypouštěli ručně metodou popsanou v Dílu 1:

To se nyní pokusíme provést ve VBA. Necháme se inspirovat nahráváním maker. Výsledek je následující:

Sub Makro1()

Selection.ListNames

End Sub

Místo Selection si dáme vlastní cíl, a tím bude buňka A4. Sestrojíme tedy samostatnou rutinu, kterou budeme umět ve vhodném okamžiku vyvolat:

Všimněte si příkazu

Range("C4").Resize(Posl_Radek - 3).PasteSpecial

Obsahuje „-3“. Co to znamená? Metoda Resize má jako argumenty počet řádků a sloupců, avšak v naší proměnné „Posl_Radek“ se vyskytuje číslo řádku. Protože jsme náš blok vypustili od 4.řádku, znamená to, že musíme první 3 řádky odečíst.

Možná jste si dále všimli, že na začátku je deklarován puvList a puvBunka.

Ty sledují účel neobtěžovat uživatele, aby se po každém zápisu záložky musel vracet na místo, odkud byl výpis seznamu vyvolán. Prostě při vstupu do rutiny si zapamatujeme původní list, a před operacemi na listu si zapamatujeme původní buňku.

Před návratem z rutiny rozmístíme aktivní prvky tak, jak byly původně při vstupu do rutiny.

Dalším krokem bude v seznamu nastavit filtr. Jsou dvě možnosti. Buď nastavíme filtr v téže rutině, která vkládala názvy, nebo k tomu účelu vytvoříme rutinu samostatnou.

K rozhodnutí mezi oběma podobnými možnostmi musíme zvážit očekávání vývoje aplikace. Pokud bychom chtěli v budoucnu umět využít stránku

Nahrávám...
Nahrávám...