Stránka 1 z 1
Spuštění makra pouze jednou
Napsal: 26 lis 2020 08:58
od luko02420
Dobrý den, potřeboval bych poradit s makrem.
Jde udělat aby se mi při otevření sešitu, po kliknutí na tlačítko, makro spustilo pouze jednou?
Po uložení a znovu otevření sešitu zase pouze jednou?
Děkuji za pomoc.
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 10:41
od atari
Do Excelu vložíš jakýkoliv objekt (to bude to tlačítko), a přes pravé tlačítko myši mu přiřadíš makro.
A potom když na to tlačítko klikneš, tak se makro jednou spustí.
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 10:56
od mmmartin
A když na to tlačítko klikne podruhé?
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 11:04
od ITCrowd
Netuším, jestli to nelze jinak. Ale šlo by to možná takto:
- jednu buňku rezervovat pro kontrolní proměnnou
- při spuštění si makro zkontroluje buňku, když je prázdná, uloží hodnotu do buňky
- takže při dalším spuštění už v buňce hodnota je, tedy se makro neprovede.
A dodat makro, které se bude spouštět při ukládání souboru a bude mazat tu buňku...
Nebo makro může smazat ten objekt, kterým se spouští a při uložení ho zase doplní.
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 11:16
od luko02420
ITCrowd píše:Netuším, jestli to nelze jinak. Ale šlo by to možná takto:
- jednu buňku rezervovat pro kontrolní proměnnou
- při spuštění si makro zkontroluje buňku, když je prázdná, uloží hodnotu do buňky
- takže při dalším spuštění už v buňce hodnota je, tedy se makro neprovede.
A dodat makro, které se bude spouštět při ukládání souboru a bude mazat tu buňku...
Nebo makro může smazat ten objekt, kterým se spouští a při uložení ho zase doplní.
Děkuji za inspiraci, hned jdu na to.
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 11:47
od Grimm
Můžeš použít globální proměnou, která si zachovává platnost do uzavření souboru.
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 11:48
od atari
Aha, takhle jsem ten dotaz nepochopil.
Já bych to udělal jinak (abych to nemusel řešit přes buňku) jak navrhuje Grimm:
Tímto makrem do proměnné "povolit" zadám pravdu, to mě udělá Excel automaticky při otevření sešitu:
(
https://office.lasakovi.com/excel/vba-p ... i-skriptu/ )
Kód: Vybrat vše
Private Sub Workbook_Open()
povolit = True
End Sub
A ve vlastním makru se příkaz vykoná jen pokud je hodnota "true" a pak se nastaví "falze", a tím je zajištěno, že se makro spustí jen při prvním stisknutí tlačítka:
Kód: Vybrat vše
Sub luko02420()
If povolit Then 'moje makro
povolit = falze
End Sub
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 12:33
od Grimm
Tak já to pochopil ještě trochu jinak než Atari, tedy bez automatického spuštění.
Kód se má spustit tlačítkem, ale pouze jednou, pokud dojde k uzavření sešitu kód bude možné znovu tlačítkem spustit viz soubor
Re: Spuštění makra pouze jednou
Napsal: 26 lis 2020 12:46
od atari
Ano, přesně tuto funkcionalitu jsem navrhoval. Jenže Grimm to udělal inteligentněji (a hlavně jednodušeji), než já.
Re: Spuštění makra pouze jednou Vyřešeno
Napsal: 26 lis 2020 13:32
od luko02420
Děkuji všem za pomoc.
Nakonec budu muset použít radu jak píše ITCrowd, protože rada od Grimma byť je vynikající se mi bije s jiným makrem, které používám na automatickou zálohu při uzavření sešitu.
Pomoc od Grimma uchovám pro pozdější využití.
Ještě jednou děkuji