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











Vytvoř si párové triko

Poradna - Makro pro vytvoření sešitu a přesun dat

hlavní kategorie | zpět | + odpovědět na toto téma
Makro pro vytvoření sešitu a přesun dat - diskuze na toto téma
Zdravím, dokázal by někdo vytvořit makro podle mnou zadaných kritérií? Mám 4 listy (2 listy se jménem a 2 listy, které budou obsahem v novém sešitu).. V každém listu se jménem by bylo tlačítko pro makro, které by vzalo hodiny jednotlivých dnů a hodnoty přeneslo do nového sešitu. Pro názornost přikládám soubor.

pavel | 3.5.2016 17:01  
 
 
v listu Radek N. a Martin D. by mělo být kdekoliv umístěné tlačítko, které po kliknutí vytvoří sešit s listem "pracovní výkaz" a "pokyny k vyplnění".. a do nového sešitu by přenesl data z listu uživatele ze sloupce "I" a to je v podstatě vše. Vše jsme nastínil v přiloženém excelu. Pokud by to možné, výsledný soubor uložit ve tvaru "pracovni_vykaz_Příjmení_rok_měsíc".. jméno by se dotahlo z buňky B2 a ostatní údaje také z datumu... je něco takového možné?
Odpověď
elninoslov | 5.5.2016 18:29  
 
 
Nejako takto ?
Odpověď
pavel | 5.5.2016 20:01  
 
 
je to naprosto parádní! velice děkuji, šlo by tam udělat jen několik drobných změn? Makro jsem přenesl do interního listu, se kterým zrovna moc nepracuje, ale v podstatě funguje. List "pracovní výkaz" a "pokyny k vyplnění" jsou uzamčeny, povolené pole pro úpravy jsou jméno, měsíc, rok a odpracované hodiny tedy celý ten řádek (datumy nad odpracovanými hodinami se vyplňují automaticky(v excelu je ještě pomocný list, který datumy zajištuje - tento list není součástí excelu, do Vašeho makra jej dokáži napojit, jsou tam interní a osobní data) pokud tedy do měsíce napíšeme duben, změní se veškeré datumy sami, Vaše makro s nimi asi pracuje, protože když je excel uzamčený, makro hodí chybu. Postačí tedy, když z jednotlivých listů(listů jmen) se přenesou pouze hodnoty do odpracovaných hodin.
Odpověď
pavel | 5.5.2016 20:05  
 
 
Druhou drobnější úpravou je, aby přenesené časy nebyly ve formátu času, ale čísla, tedy 8:30 převést na 8,5 (vzorcem bych to dokázal snadno číslo*24) ale v makru bohužel už ne. v jednotlivých listech s měsícem je vždy stejný počet políček a ve výkazu také, tedy 31.. a pokud by to šlo, pokud je hodnota 0, aby ve výkazu bylo prázdné pole?.. a ještě jsme postřehl, že po přenesení makra do interních dat ukládá název souboru jako "amcová" místo Adamcová. A poslední detail, ukládaný název je ve formátu pracovni_vykaz_Příjmení_2016_měsíc, což je parádní, akorát u měsíce je číslovka, šlo by číslovku nahradit jménem měsíce? jinak makro funguje na jedničku, pokud bych odemkl listy, funguje vše parádně kromě toho jména
Odpověď
elninoslov | 5.5.2016 21:28  
 
 
Snáď upravené všetko.
Odpověď
pavel | 5.5.2016 22:14  
 
 
po přehození do interního excelu funguje už i to jméno :) .. jen se mi bohužel rozhodil měsíc ve výkazu - buňka C9 v základu je buňka nastavená jako text a vložením data a změna formátu to bohužel nevyřešila :/. Šel by tam tedy vložit text místo datumu aby hodnota byla textová? Vše ostatní funguje na jedničku, v odpracovaných hodinách jsou obsaženy i nulové hodnoty, ale pro výpočet to nemá vliv, je to spíše kosmetické, jdou nulové hodnoty vymazat? soubor se ukládá do složky, kde je zrovna uložený excel, bylo by možné uložit to na plochu libovolného uživatele?
Odpověď
elninoslov | 7.5.2016 15:25  
 
 
Keby ste sa poriadne pozrel na súbor, čo som Vám poslal, hneď by ste zistil, že môj súbor zobrazuje mesiac ako text. Že stačí zadať iba a len prvý dátum v mesiaci, a všetky ostatné sa doplnia, zmenia, správne sa nakopírujú názov mesiaca, rok, aj sa vynechajú neexistujúce dni v mesiaci, všetko sa rovnako samé upraví vo výkaze... Rovnako neviem o akých nulových hodnotách hovoríte, keď ja som Vám zakomponoval do všetkých 3 listov, že sa 0 hodnoty zobrazovať nebudú. Tieto problémy všetky vznikajú len preto, že riešenie nedostatočne okopírujete do Vašeho súboru. Pridal som Vám tam aj ukladanie na plochu aktuálneho užívateľa. Ešte raz zopakujem ako funguje ten dátum teraz. Vy zadáte iba jeden jediný dátum do bunky C5. Všetko ostatné sa zmení, nastaví, nakopíruje samé. Jedna z hodnôt C9/C11 v pracovnom výkaze musí byť preto ako dátum formátovaný do požadovanej podoby (či už ako rok, alebo názov mesiaca). Lebo z jednej z týchto buniek si berie celý riadok D16:AH16 dátum, na ktorý sa má ...
Odpověď
elninoslov | 7.5.2016 15:26  
 
 
pokračovanie: ... nastaviť, pretože ako ste napísal, to skončí chybou, kvôli zabezpečeniu listu, ak sa pokúsite zmeniť makrom ten riadok (ako bolo 1. riešenie).
Odpověď
pavel | 7.5.2016 16:03  
 
 
nyní vše funguje parádně, mnohokrát děkuji za makro :) .. jen taková teoretická otázka, pokud se z excelu vytváří nový sešit (tím kopírováním) přenesou se také názvy (definované názvy), lze v makru nějak zamezit přenos těchto názvů (respektivě některé přenést a některé ne? ty názvy, které nejsou nijak využity v tom novém sešitu končí chybou nebo odkazují na předchozí umístění souboru.. nevím jestli je to z mého popisu zřejmé, proto přikládám screen.. Pokud se tyto hodnoty přenesou, excel mi pak sděluje, že existuje externí propojení v Záložce Data> Připojení >Upravit odkazy.. k výmazu dojde poze tehdy, když se vymažou definované názvy
Odpověď
elninoslov | 7.5.2016 18:30  
 
 
Pridal som tam ešte jeden blok. Na začiatku bloku vložte do poľa NMazat pole názvov, ktoré sa majú zmazať.
Odpověď
pavel | 7.5.2016 19:16  
 
 
Neskutečné!!! Funguje to vynikajícně, přesně podle předpokladů. Velice děkuji za ochotu. Zkoušel jsem podobné makro tvořit dle návodů na webu, ale vždy tam jsou hrozně dlouhé kódy pro jednu funkci a Vy máte vše tak krátké a víceméně jednořádkové, je to až k neuvěření :).. ještě jednou děkuji
Odpověď