WWW pro školy
Jak na Office - tutoriály, video návody











Vytvoř si párové triko

Poradna - Zapeklitý problém s makry

Vložení příspěvku
Předmět:
Vaše jméno: (povinný údaj) Váš e-mail:
Text:(Zbývá: 1000 znaků - povinný údaj)
Připojit ukázkový soubor:
(Maximální velikost souboru jsou 2MB.)
 Opište následující text (kvůli zneužití):  xwyBY   

hlavní kategorie | zpět | + odpovědět na toto téma
Zapeklitý problém s makry - diskuze na toto téma
Zdravím, mám problém s excelem. V souboru používám moduly. Když mám soubor otevřený, podmínky z modulů se automaticky aplikují na všechny ostatní sešity otevřené ve stejné instanci. Jakmile tento sešit s moduly zavřu, při změně buňky v jiném sešitu se tento sešit znovu otevře. Pokud změním název, nahlásí to, že soubor nemůže najít. Pokud zavřu excel a otevřu znovu, již se to neděje. Poradí někdo?

Pavlus | 1.2.2017 17:19  
 
 
Bez přílohy těžko říct... P.
Odpověď
Marek | 2.2.2017 07:21  
 
 
Soubor bohužel zaslat nemohu, jedná se o citlivá data. Doufal jsem, že podle popisu problému bude někdo vědět, nebo mít s tímto zkušenosti. Prostě v modulech jsou nastaveny podmínky, které se záhadně aplikují na všechny otevřené sešity ve stejné instanci. Po zavření sešitu v makry se po změně hodnot v buňce soubor sám otevře. Lépe to popsat nelze. Zkusím ze souboru vymazat osobní data a přiložit.
Odpověď
Marek | 2.2.2017 07:42  
 
 
Tak se povedlo vymazat osobní data a stále to zlobí. Bohužel nemohu přiložit - nedovolí mi to firemní gateway, proto jsem soubor odeslal na email "problemsmakry@seznam.cz", heslo je "msexcel".
Odpověď
Pavlus | 2.2.2017 09:50  
 
 
Moc tě stejně nechápu, podle mě by s tím neměl být problém. Nešel jsem nějak do hloubky, ale v kódu tam máš příkazy jako ActiveSheet a ActiveCell, což pak bere vždy aktivní objekty, takže pokud se makro spustí z jiného sešitu, tak může provádět změny i v jiném sešitu než kde je uloženo. Do kódu lze nastavit i v jakém sešitu se bude provádět, například nějak takto: Workbooks("Název.xls").Worksheets(ActiveSheet.Name). P.
Odpověď
Marek | 2.2.2017 11:32  
 
 
Tak to vyzkoušej a uvidíš. Když otevřeš nový sešit v tomtéž excelu, tak se tam budou aplikovat pravidla (makra) z tohoto (mého) sešitu. A když ten můj zavřeš, a změníš něco v tom novém, otevře se. Odzkoušeno na vícero počítačích, takže to není nastavením excelu.
Odpověď
Marek | 2.2.2017 14:50  
 
 
Není to ani v sešitu, ani v makrech... je to někde hloubš. Všechna makra jsem odebral. Když jsem potom v sešitu přepsal hodnotu buňky na 1, což by podle makra mělo obarvit buňku na zeleno, excel zahlásí, že nemůže najít makro. Je někde v excelu něco jako nastavení, jak má sešit reagovat při změně buňky? Třeba jestli pustit makro?
Odpověď
Pavlus | 2.2.2017 15:23  
 
 
Můžeš mít naprogramovanou událost listu Worksheet_Change. Kód nemusí být nutně jenom v Modulech, ale může být i v listech... P.
Odpověď
Marek | 2.2.2017 16:32  
 
 
Ano, je naprogramované událost Workbook_Open v ThisWorkbook. Ta událost vyvolá další událost, která se potom aplikuje na celý excel, bez ohledu na sešit. A já chci událost upravit tak, aby se neaktivovala na celý excel, ale pouze na ten jeden sešit. Jde to? V mém konkrétním případě je to událost "Zmena_barvy", která vyvolá událost "Adresa". Kombinace těchto dvou událostí fungují jako podmíněné formátování, ale na celý excel. A když sešit zavřu a dále pracuji v jiném sešitu, otevře se opět tento. Nelze to řešit podmínkami podmíněného formátování, protože v souboru pracují i lidi se starším excelem.
Odpověď