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 Obrázek

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