Toto je odborná verzia a neviem, prečo to nejde, možno verziou Excelu, zastavuje mi to na riadku Me.ListObjects("example") ...
Každopádne Ti tam chýbali dve veci:
úplne za prvé: nemá Ti tam čo spúšťať procedúru, pretože tam nemáš funkciu =NOW() (tú si zvolil on v bunke G1, môže však byť akákoľvek iná, ktorá spôsobí prepočet), ktorá zaručuje prepočítavanie hárka a týmpádom spúšťanie udalosti Calculate
za druhé: on tam má použitú pomenovanú oblasť A2:C5 (nazval ju "example" - zhodou okolností totožne ako názov hárka ale to je niečo úplne iné). Pozri si na karte "Vzorce - správca názvov"
a možno...za tretie: správca názvov sa správa inak keď je tabuľka bežná, než keď je tabuľka formátované ako "Tabuľka" (zistíš, keď si v oboch prípadoch skusmo nadefinuješ oba druhy...
Každopádne, ako vravím, súbor "working" je na mňa spôsob príliš odborného zápisu a tak ja si tieto veci riešim po svojom. Tu je môj kód, ktorý pracuje tak, ako som popísal v predošlom mojom poste (zvolil som si 5 stĺpcovú oblasť, aby sme videli, že skrýva aj nesúvislé polia stĺpcov:
Najprv odkryjem 5 stĺpcov, čím si zaručím, že sa hneď na začiatku všetko odkryje a pripraví pre podmienky novej filtrácie.
Prejdem v cykle 5 stĺpcov a v každom funciou Subtotal 103 kontrolujem, či je výsledkom 1. Jednotka totiž znamená, že stĺpec obsahuje len 1 záznam = hlavičku.
Ak je výsledkom 1, tak stĺpec skryjem.
Hotovo
Private Sub Worksheet_Calculate()
Columns("A:E").Hidden = False
For i = 1 To 5
If Application.Subtotal(103, Columns(i)) = 1 Then Columns(i).Hidden = True
Next i
End Sub