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

Jste zde: Úvodní stránka » excel » vba-listy-sheet » Worksheet_Calculate-udalost-listu-excel-vba

Worksheet_Calculate - událost listu

Videokurzy Excel

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

Událost, která reaguje na provedení přepočtu listu.

Úvodem

Událost Worksheet_Calculate, která reaguje na přepočet listu je výhosná pro odchycení změn při filtrování. Událost Worksheet_Change nereaguje například na filtrování) případně nastává až moc často. Nebo Vám nevyhovuje událost reagující na změnu výběru Worksheet_Change. Proto pro některé případy je vhodná Worksheet_Calculate. Pomocí ní dokážete například odchytiť změny provedené při použití filtru (a vhodně na ně reagovat).

Deklarace

Private Sub Worksheet_Calculate() End Sub

Ukázkový příklad pro Worksheet_Calculate

Pro první vyzkoušení můžete při každé změně, která vyvolá událost Calculate zobrazit dialogový box. Jednoduše zjistíte zda je pro Vás tato událost ta pravá nebo raději nepoužijete SelectionChange

Private Sub Worksheet_Calculate() MsgBox ("Změna Worksheet_Calculate") End Sub

Worksheet_Calculate - filtry

Pro podchycení změny na listu pomocí filtru(ů) je vhodné použít událost Worksheet_Calculate. Nejprve je potřeba doplnit tabulku o vzorec (funkci) SUMA. Při změně ve filtrech dojde k přepočtu vzorce (funkce) a tím pádem i k vyvolání události Calculate.

Jak poznat kdy událost reaguje?

Stačí, aby VBA kód spustil dialogový box s informací, když tato událost nastane.

Private Sub Worksheet_Calculate() MsgBox ("Změna Worksheet_Calculate") End Sub

Jak vybrat vhodnou událost?

Pokud s událostmi pracujete poprvé a nejste si jisti co která umí, na co která reaguje.

Jednoduše uděláte několik VBA kódu. Stačí, aby příslušný kód spustil dialogový box s příslušnou informací, která událost nastala.

Private Sub Worksheet_Calculate() MsgBox ("Změna Worksheet_Calculate") End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) MsgBox ("Změna Worksheet_SelectionChange") End Sub Private Sub Worksheet_Change(ByVal Target As Excel.Range) MsgBox ("Změna Worksheet_Change") End Sub

Poznámka: Takto také zjistíte, která událost nastane jako první a která posléze (tj. co má vyšší prioritu), když jsou vyvolány dvě (tři) události zároveň. Takto jednoduše pochopíte, kdy která událost zareaguje.

Závěrem

Další informace o událostech listu jsou v souhrném článku: Události listu v MS Excel VBA

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

Podpora - oceňte web a pozvěte mě na čokoládu

Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.

Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .

Poděkování

Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.

Vylepšení

Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). 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 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.

   Pavel Lasák LinkedIn Profil    Pavel Lasák twitter Profil




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 - 2025 |