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: 173
Registrován: únor 12
Pohlaví: Nespecifikováno

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 5.5
Level 5.5
Příspěvky: 2668
Registrován: říjen 08
Pohlaví: Muž

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
Master Level 9.5
Master Level 9.5
Příspěvky: 8581
Registrován: srpen 04
Bydliště: Praha
Pohlaví: Muž

Re: Spuštění makra pouze jednou

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

A když na to tlačítko klikne podruhé?

Uživatelský avatar
ITCrowd
Tvůrce článků
Elite Level 12.5
Elite Level 12.5
Příspěvky: 20373
Registrován: březen 10
Pohlaví: Muž

Re: Spuštění makra pouze jednou

Příspěvekod ITCrowd » 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í.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

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

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 1.5
Level 1.5
Příspěvky: 118
Registrován: září 17
Pohlaví: Muž

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 5.5
Level 5.5
Příspěvky: 2668
Registrován: říjen 08
Pohlaví: Muž

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 1.5
Level 1.5
Příspěvky: 118
Registrován: září 17
Pohlaví: Muž

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
Nemáte oprávnění prohlížet přiložené soubory.

Uživatelský avatar
atari
Level 5.5
Level 5.5
Příspěvky: 2668
Registrován: říjen 08
Pohlaví: Muž

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: 173
Registrován: únor 12
Pohlaví: Nespecifikováno

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
  • Počítač se restartuje jednou za čas
    od pepan321 » 19 srp 2020 10:57 » v Problémy s hardwarem
    7
    396
    od pepan321
    21 srp 2020 09:41
  • All-in-one PC jednou za pul hod zčerná obrazovka
    od name66 » 27 říj 2020 12:27 » v Problémy s hardwarem
    2
    348
    od petr22
    29 říj 2020 07:53
  • Access point se odpojuje od internetu tak jednou denně
    od Antrophy » 13 črc 2020 14:10 » v Administrace sítě
    1
    561
    od ITCrowd
    13 črc 2020 14:27
  • Makra VBA v excelu
    od pajas92 » 12 úno 2020 16:53 » v Kancelářské balíky
    2
    1489
    od pajas92
    13 úno 2020 18:07
  • Opakování funkce / makra
    od MilaF » 16 črc 2020 10:52 » v Programování a tvorba webu
    0
    355
    od MilaF
    16 črc 2020 10:52

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

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot], elninoslov a 1 host