Stránka 1 z 2
Excel - spuštění makra při změně hodnoty buňky
Napsal: 19 led 2009 00:08
od luckyluck77
Ahoj, měl bych na vás prosbu.
Potřeboval bych, aby se mi spustilo makro, když změním hodnotu konkrétní buňky.
Jde to?
Díky za radu.
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 19 led 2009 00:13
od mike007
Vítej na pc-help
Lze to provést. O jaké konkrétní buňce se bavíme?
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 19 led 2009 00:14
od luckyluck77
třeba o buňce D8:)
Re: Excel - spuštění makra při změně hodnoty buňky Vyřešeno
Napsal: 19 led 2009 00:28
od mike007
Klikni pravým tlačítkem myši na název listu, pro který chceš toto aplikovat a z kontextového menu vyber možnost Zobrazit kód. Do prázdného okna napravo vlož následující makro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$8" Then
Call nazev_makra
End If
End Sub
Nezapomeň k funkci Call zapsat název makra, které se má spustit (viz, červený text)
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 19 led 2009 00:36
od luckyluck77
Díky moc, hned to vyzkouším!
Už 3 dny to zjišťuju, to by byla bomba!
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 19 led 2009 00:39
od mike007
Ok, dej pak vědět, jestli ti to vyhovuje či nikoliv.
3 dny hledat odpověď je opravdu hodně. Příště zajdi sem

Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 09 dub 2009 08:23
od MyDloch
Moc děkuji, i mě to pomohlo.
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 29 dub 2009 20:18
od matio
Díky za super radu, i mě to moc pomohlo, ale ještě bych potřeboval aby se makro spustilo když se změní hodnota buňky na základě výpočtu a ne jen když ji změním já ručně. Takže mám buňku, která počítá podle daného vzorce číslo. Data pro vzorec zadávám z určitého rozsahu buňek. Jde, aby se makro spustilo i když se změní číslo, (v oné buňce se vzorcem) které se vypočítá?
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 30 dub 2009 00:11
od navstevnik
to matio:Pro zachyceni udalosti zmena hodnoty bunky vypoctem vzorce slouzi udalostni procedura Worksheet_Calculate(), bohuzel zachycuje jakykoliv prepocet na listu vcetne funkce NahCislo(), Dnes(),..., takze je nutno identifikovat zdroj, kdy by mela byt volana procedura.
V popisovanem pripade - "Data pro vzorec zadávám z určitého rozsahu buňek" - lze opet pouzit udalostni proceduru Worksheet_Change(ByVal Target As Range) a identifikovat zmenu v bunkach pro zadavani dat, napr.: A1:A3, B2,C3.
Kód: Vybrat vše
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
Set Cll = Intersect(Target, Range("A1:A3, B2,C3"))
If Cll Is Nothing Then Exit Sub
Call nazev_makra
End Sub
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 30 dub 2009 00:44
od mike007
matio: A co takhle si založit vlastní téma?? Příště to laskavě udělej. Zde je již vlákno uzavřeno.
Kód: Vybrat vše
Private Sub Worksheet_Calculate()
If Range("d8") <> "" Then
Application.EnableEvents = False
Call nazev_makra
Application.EnableEvents = True
End If
End Sub
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 30 dub 2009 08:08
od navstevnik
to mike0007:
Podminka If Range("d8") <> "" Then je splnena pouze v pripade, ze bunka D8 je prazdna, pokud bude vlozen vzorec, bude D8 obsahovat funkcni hodnotu <>"", takze podminka pri prepocetu listu vyvolana zmenou funkcni hodnoty vzorce v jine bunce (nebo funkci DNES(),...) bude vyhodnocena jako TRUE a zavolano makro, prestoze nedoslo ke zmene funkcni hodnoty v D8.
Re: Excel - spuštění makra při změně hodnoty buňky
Napsal: 30 dub 2009 08:24
od matio
2 Mike007: Sorry, ale to, na co jsem se ptal velmi souviselo s první otázkou - jedná se o to samé téma. Připadlo mi nesmyslné zakládat nové vlákno s tím samým názvem a skoro tou samou otázkou a tím znepřehledňovat celé fórum.
2 Navstevnik: Díky moc za odpověď, jdu to zkusit.