Stránka 1 z 1
Excel - spuštění makra při hodnotě buňky
Napsal: 02 čer 2013 10:35
od ENeMy
Dobrý den,
potřeboval bych poradit, jakým způsobem se dá spustit makro. Potřebuji aby se makro A spustilo, když v buňce P3 bude 1, a když bude ve stejné buňce 0, tak aby se spustilo makro B. Něco jsem udělal, ale aktivuje se makro pokaždé, když se začnou přepočítávat vzorce.
Kód: Vybrat vše
Private Sub Worksheet_Calculate()
Select Case Range("$AN$1")
Case 0
Call B
Case 1
Call A
End Select
End Sub
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 02 čer 2013 11:12
od cmuch
Tak Calculate změň na Change.
Jinak v podmínce máš AN1 a ne P3.
Nebo můžeš použít makro jak tady v tom příspěvku
viewtopic.php?f=35&t=105303&hilit=makro
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 02 čer 2013 13:24
od ENeMy
Když to změním na change, tak to vyhodí chybu. Compile error: Ambiguous name detected: Worksheet_Change
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 02 čer 2013 13:52
od Mirdad69
To vypadá, že tam máš v jednom listu 2 makra stejného názvu Worksheet_Change.
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 02 čer 2013 15:35
od ENeMy
Měl jsem tam 2, to druhé bylo
Kód: Vybrat vše
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$P$3" Then
Call Zmena
End If
End Sub
A když jsem ho dal pryč, tak tam vyskočilo toto

Re: Excel - spuštění makra při hodnotě buňky
Napsal: 02 čer 2013 15:46
od cmuch
Aby to nevyskakovalo tak musí být název takto
Private Sub Worksheet_Change(ByVal Target As Range)
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 02 čer 2013 15:58
od ENeMy
Ještě mě napadlo, jestli makro nemůže vyvolat dotazové okno jestli opravdu chcete spustit makro.
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 03 čer 2013 11:45
od cmuch
Jakože vyskočí okno s dotazem zda se má vyvolané makro dokončit?
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 03 čer 2013 18:29
od ENeMy
Ano, přesně tak.
Re: Excel - spuštění makra při hodnotě buňky
Napsal: 03 čer 2013 19:15
od cmuch
Takže asi tak
Kód: Vybrat vše
Sub DotazProPokracovani()
If MsgBox("Pokračovat?", vbQuestion + vbYesNo + vbDefaultButton2) = vbYes Then
MsgBox "Pokračuji."
End If
End Sub