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











Vytvoř si párové triko

Poradna - Přejmenování sešitu s Makry

hlavní kategorie | zpět | + odpovědět na toto téma
Přejmenování sešitu s Makry - diskuze na toto téma
Ahoj chtěl bych poprosit o radu. Vytvořil jsem si v sešit, ve kterém mám různé makra, které používám na filtrování a kopírování do jiných listů. Vše funguje. Problém nastává, když chci sešit přejmenovat. Makra jsem tvořil přes "Zaznamenat makro". Pokud sešit přejmenuju, tak makra nefungují. Prosím o radu, jak tento problém vyřešit. Díky Karel

Lobo | 20.10.2022 17:35  
 
 
Workbook(NejakeJmeno) nahraď za ThisWorkbook
Odpověď
Karel | 21.10.2022 07:22  
 
 
Ahoj, zkusil jsem to přepsat, ale když to udělám, tak to hodí chybu: Object required. Udělal jsem to, že jsem otevřel VBA a všechny Workbook jsem přepsal na ThisWorkbook. Udělal jsem to správně?
Odpověď
elninoslov | 21.10.2022 08:13  
 
 
Nie. To nejde generalizovať, keď nikto nevie, čo tie Vaše makrá robia, nikto ich nevidel. ThisWorkbook iba zabezpečí, aby sa pracovalo s objektom/oblasťou/vlastnosťou súboru s makro, ktoré beží. Ale ak Vy v makre pracujete aj s inými zošitmi, tak tam potrebujete práve to Workbooks(meno súboru) a nie ThisWorkbook. Musíte priložiť tie makrá. Ten súbor s makrami. Navyše sa Vám niekto pozrie aj na optimalizáciu tých makier (ak dáte presne a jasné požiadavky), pretože nahrané makro záznamníkom, skutočne nie je optimálne riešenie.
Odpověď
Karel | 21.10.2022 12:28  
 
 
Díky, přikládám tedy soubor s makry. Data se zadávají pouze do listu Rozpis pozic. Pokaždé tam může být jiný počet řádků. Ostatní listy by se měly tvořit pomocí maker. Prosím tedy o radu jak to udělat, aby makra fungovaly i v přejmenovaném sešitě. Moc Díky
Odpověď
elninoslov | 21.10.2022 14:30  
 
 
Ešte len som to otvoril, a prvá vec čo mi bije do očí : Nepoužívajte Application.Run keď voláte makro v tom istom súbore. Proste iba napíšte názov makra. Teda namiesto Application.Run "'V001-0002-2022.xlsm'!Clear_fiter" napíšte iba Clear_fiter. Application.Run sa používa, ak voláte makro umiestnené v inom súbore ako ten, z ktorého sa makro volá. Na ostatné sa pozriem neskôr.
Odpověď
elninoslov | 21.10.2022 16:43  
 
 
Tak som na to pozrel. Je tam množstvo zbytočných vecí a krokov. Ak makro, urobil by som to určite cez pole. Expresne rýchle. Ale. Pozerám, že tam máte PowerQuery dotaz. Takže vy načítate do listu "Rozpis Pozic" cez PowerQuery dotaz dáta z nejakého TXT súboru? A načo potom makro??? Veď sa to dá celé urobiť cez to PowerQuery. Ale potrebujem na to ten origo TXT súbor. A predpokladám, že tam sa bude ten súbor meniť, teda to by bol meniteľný parameter v nejakej bunke.
Odpověď
elninoslov | 21.10.2022 18:40  
 
 
Tu máte príklad makrom, no na to PQ budem potrebovať ten súbor TXT.
Odpověď
Karel | 24.10.2022 07:24  
 
 
Díky moc, jdu se na to podívat. PowerQuery jsem zkoušel, vím, že by to umělo ale já si s tím zatím nedokážu poradit. Navíc ten TXT soubor asi v brzké době bude pokaždé vypadat trochu jinak.
Odpověď