Tady bych mohl pomoct, ale protože neznám tvoji tabulku, budeš si to muset změnit podle tvé struktury.
Nejdříve si vytvoř tlačítko pomocí nabídky
Ovládací prvky (pozor, ne pomocí Formuláře) a klikem pravého myšítka na tlačítku zobraz podmenu. Vyber
Vlastnosti a změň položky (Name) a Caption.
(Name) je interní název Excelu, se kterým pracuje a Caption je text v tlačítku. Stejným způsobem vytvoř druhé tlačítko. Já jsem použil tyto názvy:
tlačítko 1 - (Name) = AllButton, Caption = Všechny
tlačítko 2 - (Name) = EmptyButton, Caption = Nezaplacené
Potom se přepni do Visual Basicu do listu, kde máš tu tabulku. Nedávej to modulu, kde máš ostatní makra).
V tomto případě je to list se jménem Data (List 2 je znova interní název Excelu).
Do sekce pro psaní kódu napiš tyhle makra:
Pak si musíš upravit toto:
1. Předpokládám, že tabulku neustále upravuješ, proto je tu proměnná
konec, do které se uloží číslo posledního řádku tabulky. Ale do kódu Range("
A2").End(xlDown).Row musíš místo A2 dát adresu první buňky ve sloupci tabulky, kde nejsou prázdné buňky - pokud by v tomto sloupci byla nějaká buňka prázdná (nevyplněná data), tak by první prázdná buňka, kterou najde, byla pro něj konec tabulky. Předpokládám, že máš takový sloupec (např. datum nebo číslo faktury nebo něco jiného).
Díky tomuto opatření se nebudeš muset starat, kolik řádků máš v tabulce, protože si vždy najde poslední řádek.
2. V kódu Set bunka = Range("
Q3") dej namísto Q3 první buňku ve sloupci, kde máš datum zaplacení (nesmí to být hlavička, ale první řádek, kde má být napsána hodnota). Projde celou tabulku a skryje všechny řádky, kde je nějaký datum.
Pokud bys měl s něčím problém, tak mi můžeš poslat ukázku tvojí tabulky s vymyšlenýmy daty a já to upravím přímo pro tebe.