Filtrování dat pomocí makra
Publikováno: 22.2.2020

Filtrování dat pomocí záznamu makra, spárování makra s tlačítkem, úprava makra ve vývojovém prostředí VBA
- makro
- filtr
- editor VBA
Automatický filtr v tabulkách je velmi užitečný a běžný nástroj pro filtrování dat na základě zvolených kritérií. Smyslem filtru je zúžit množinu dat dle aktuálních požadavků pro další práci.
V příspěvku ukážu vychytávku filtrování dat v tabulce pomocí nahraného makra, které spáruji s tlačítkem umístěném v listu sešitu.
Pracovní tabulka
K dispozici máme tabulku se zákaznickými nákupy palivových a nepalivových transakcí přepočítaných do CZK ve vybrané síti čerpacích stanic v Česku, Rakousku a Slovensku. Úkolem je nahrát makra, která filtrují všechny transakce realizované ve vybraných zemích.

Záznam makra
Nejjednodušším způsobem je nahrát makro pomocí Záznamníku makra, který najdete na kartě Vývojář. Pokud nemáte zkušenosti s nahráváním makra, tak doporučuji článek tvorba vlastního makra. Druhou možností je napsat makro v jazyku VBA, ale to není cílem příspěvku. V každém případě vás drobné úpravy v jazyce VBA čekají.
Postup nahrání makra
Na kartě Vývojář spusťte již zmiňovaný Záznamník makra, nastavte název makra na cesko a potvrďte. Od teď se každá vykonaná operace nahrává do makra.
Označte myší záhlaví tabulky a na kartě Data v sekci Seřadit a filtrovat vyberte ikonu Filtr. Tím tabulce nastavíte automatický filtr a ve sloupci Země vyberte pouze kód CZ. Nakonec ještě doporučuji aktualizovat součty za vybranou oblast klávesou F9. Makro je nahrané a na kartě Vývojář ukončete záznam makra.
Spárování makra s tlačítkem
Pro pohodlnější práci s makrem doporučuji nahrané makro spárovat s tlačítkem. Kdykoliv kliknete na tlačítko, spustí se dané makro a nemusíte nic víc řešit.
Na kartě Vývojář v sekci Ovládací prvky klikněte na ikonu Vložit a vyberte tlačítko z ovládacích prvků formuláře. Po umístění tlačítka do listu se nabídne možnost přiřazení makra. Vyberte vytvořené makro cesko a máte spárováno s tlačítkem.

Nyní můžete otestovat, zda tlačítko s makrem funguje. Výsledek by měl být stejný jako na následujícím obrázku

Vývojové prostředí VBA
První makro máme nahrané a spárované s tlačítkem. Nyní už jen zbývá vytvořit stejná makra pro nákupy v Rakousku, na Slovensku a nakonec budeme potřebovat i makro pro zrušení výběru.
Stiskem klávesové zkratky Alt + F11 otevřete vývojové prostředí VBA, které se používá po psaní kódu VBA a na úpravu nahraného makra. Zdrojový kód našeho nahrané makra vypadá následovně

Makro cesko je uvozeno příkazy Sub ... End Sub. Dalšími řádky říkáme, že vybíráme rozsah buněk se záhlavím a výběru nastavujeme automatický filtr. Tabulku chceme filtrovat podle třetího sloupce Země a kritériem je CZ. Poslední příkaz Calculate reprezentuje přepočet součtů funkce SUBTOTAL() stiskem klávesy F9.
Další makra ...
Další makra pro filtrování nákupů na Slovensku a Rakousku vytvoříte velmi jednoduše. Zkopírujte kód již nahraného makra pomocí Ctrl + C a vložte dvakrát pod původní kód pomocí Ctrl + V. Upravte názvy a kritéria podle jednotlivých zemí a smažte zbytečné volné řádky a komentáře.
Nakonec stejným způsobem vytvořte makro zrus_filtr, ve kterém pouze vymažte kritérium s kódem země.

Vytvořená makra přiřaďte tlačítkům stejným způsobem jako v prvním případě. V seznamu nahraných maker nyní najdete následující makra

Finální produkt
Na následujícím obrázku je finální podoba tabulky se všemi tlačítky. Tabulka je velmi přehledná a maximálně pohodlná na ovládání. To se ale změní v okamžiku, kdy potřebujete filtrovat podle dalšího sloupce a kritéria. V tom případě je lepší variantou napsané makro ve VBA.

V dalším příspěvku ukážu, jak velmi elegantně zarovnat tlačítka.
