Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Reagujte na změnu v listu pomoci události Worksheet_Change.
Tato událost je jednou z nejpoužívanějších při programování ve VBA. Reaguje na změny provedené na listu. Její deklarace je:
Private Sub Worksheet_Change(ByVal Target As Range)
Jednoduchý kód který při změně na listu vyvolá dialogové okno s hláškou: Došlo ke změně na listu.
Private Sub Worksheet_Change(ByVal Target As Range) MsgBox ("Došlo ke změně na listu.") End SubZměna v buňce, kterou provede událost Worksheet_Change, může být příčinou zacyklení. V případě do události vložíte místo dialogové hlášky nějakou změnu na listě (vyplnění buňky tetem), pokud toto operaci správně neošetříte, zaděláte si na problém. Dojde k zacyklení.
Příklad: Provede se změna na listu tato vyvolá událost, která provede změnu na listě, ale tato změna je změnou na listu což provede opět událost ... takže jste v nekonečné smyčce. Proto pokud tato událost provádí na listě změnu musí dojít k dočasnému vypnutí...
V ukázce je chyba která kousne Excel !!
Private Sub Worksheet_Change(ByVal Target As Range)
Range("C5").Select
ActiveCell.FormulaR1C1 = "test"
End Sub
Pro zamezení zacyklení slouží příkaz: Application.EnableEvents nejprve FALSE a poté vrrácení na TRUE.
Application.EnableEvents = False
... Potřebná změna v buňce ...
Application.EnableEvents = True
Kód zapíše do buňky A1 Správne heslo., pokud do buňky B2 bude zadano HESLO, jinak zapíše do A1 text Nesprávné heslo.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B2").Value = "HESLO" Then
Application.EnableEvents = False
Range("A1").Select
ActiveCell.FormulaR1C1 = "Správne heslo."
Application.EnableEvents = True
Else
Application.EnableEvents = False
Range("A1").Select
ActiveCell.FormulaR1C1 = "Nesprávné heslo."
Application.EnableEvents = True
End If
End Sub
Máte nějaké zajímavé příklady, které používají událost Worksheet_Change (změna listu)? Můžete doplnit do komentářů.
Článek byl aktualizován: 19.09.2020 11:07
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 .
Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.
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.
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.
|
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
|
LinkedIn... |
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 |