Spuštění makra pouze jednou Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Spuštění makra pouze jednou

Příspěvekod luko02420 » 26 lis 2020 08:58

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.

Reklama
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3344
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Spuštění makra pouze jednou

Příspěvekod atari » 26 lis 2020 10:41

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í.

Uživatelský avatar
mmmartin
Moderátor
Elite Level 10
Elite Level 10
Příspěvky: 9639
Registrován: srpen 04
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline

Re: Spuštění makra pouze jednou

Příspěvekod mmmartin » 26 lis 2020 10:56

A když na to tlačítko klikne podruhé?
ASUS Prime Z390-P / Hexa Core Intel core i5 Coffee Lake-S / Gigabyte GeForce GTX 650 Ti / FORTRON BlueStorm Bronze 80PLUS / W 11

Uziv00
Pohlaví: Nespecifikováno

Re: Spuštění makra pouze jednou

Příspěvekod Uziv00 » 26 lis 2020 11:04

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í.

luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Spuštění makra pouze jednou

Příspěvekod luko02420 » 26 lis 2020 11:16

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.

Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: září 17
Pohlaví: Muž
Stav:
Offline

Re: Spuštění makra pouze jednou

Příspěvekod Grimm » 26 lis 2020 11:47

Můžeš použít globální proměnou, která si zachovává platnost do uzavření souboru.

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3344
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Spuštění makra pouze jednou

Příspěvekod atari » 26 lis 2020 11:48

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

Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: září 17
Pohlaví: Muž
Stav:
Offline

Re: Spuštění makra pouze jednou

Příspěvekod Grimm » 26 lis 2020 12:33

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
Přílohy
Bylo jiz spusteno.xlsm
(12.93 KiB) Staženo 54 x

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3344
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Spuštění makra pouze jednou

Příspěvekod atari » 26 lis 2020 12:46

Ano, přesně tuto funkcionalitu jsem navrhoval. Jenže Grimm to udělal inteligentněji (a hlavně jednodušeji), než já. :thumbup:

luko02420
Level 2
Level 2
Příspěvky: 218
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Spuštění makra pouze jednou  Vyřešeno

Příspěvekod luko02420 » 26 lis 2020 13:32

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


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • League of Legends - vysoké ms pouze u her od riotu Příloha(y)
    od 4Lift » 04 úno 2025 21:41 » v Hry
    6
    4626
    od 4Lift Zobrazit poslední příspěvek
    10 úno 2025 21:09
  • Náhodné zamrznutí PC, řešením je pouze tvrdý restart.
    od Sipsisipi » 21 srp 2024 19:12 » v Problémy s hardwarem
    10
    4275
    od Sipsisipi Zobrazit poslední příspěvek
    25 srp 2024 10:37
  • Google->Apple kalendář, synchronizace pouze mých událostí
    od Zakk » 13 črc 2024 16:18 » v Vše ostatní (sw)
    3
    3920
    od Martab Zobrazit poslední příspěvek
    13 črc 2024 21:01
  • Spuštění PC Příloha(y)
    od Elbeckho » 21 úno 2025 14:27 » v Problémy s hardwarem
    11
    4456
    od Kminek Zobrazit poslední příspěvek
    23 úno 2025 02:14
  • Nedetekován signál (černá obrazovka) při spuštění PC
    od zerbngr » 01 črc 2024 17:37 » v Problémy s hardwarem
    13
    4581
    od petr22 Zobrazit poslední příspěvek
    03 črc 2024 10:36

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů