< návrat zpět
MS Excel
Téma: makro - hodnoty ze souborů ve složce
Zaslal/a bedha 30.3.2018 10:28
Dobrý den,
prosím o vytvoření makra, které by umělo následující:
V daném sešitě (vysledek_souctu) vyvolat dialog pro otevření složky(v tomto konkrétním případě vybereme složku zdroje dat, název složky ale může být libovolný, stejně jako její umístění), ze které se načtou zdrojové soubory, názvy těchto souborů se vypíší pod sebe, do sloupce A, začátek na řádku 2. V dalších sloupcích dojde k vyhledání dat ve zdrojových souborech (v těch jsou data vždy na stejném místě (B:M 33:49) ve shodně pojmenovaném listu(Titulní list)) a tyto hodnoty vypíše do příslušného řádku a sloupce (B až R).
Řádek 1 je pouze informativní (sloupec A - "název souboru", sloupce B až R uvádí hodinu, pro kterou byl výpočet ve zdrojových souborech proveden). Výsledkem všeho je nalezení max. hodnoty součtu pro danou hodinu ze všech načtených souborů. Zdrojových souborů může být i několik desítek s různými názvy. Vždy ale uloženými v jedné konkrétní složce, která bude na začátku zvolena.
Data v sešitě (vysledek_souctu) by se měla při každém spuštění aktualizovat, bez nutnosti znovu spouštět makro.
Nyní je v sešitě vysledek_souctu ukázáno, jak by měl výsledek vypadat.
Pro jednotlivé kroky jsem nějaká makra našel, ale neumím je spojit do jednoho a neumím si najít čas na hlubší prostudování problematiky. Případné odměně za pomoc - vytvoření makra - se nebráním.
Příloha: 40025_makro-soucet.zip (99kB, staženo 41x)
MePExG(30.3.2018 12:58)#040026 Ponúkam (nenútim) riešenie (bez makra) pomocou PowerQuery (od 2010 doplnok, v 2016 je už obsiahnuté). Stačí nastaviť cestu k súborom a na liste Data spustiť aktualizáciu všetkých údajov.
Příloha: 40026_pq-subory-a-max.xlsx (25kB, staženo 42x) citovat
bedha(30.3.2018 13:26)#040027 s PowerQuery nemám žádnou zkušenost, ale důležitý je výsledek, nabízenému řešení se tedy nebráním. Doplněk jsem nainstaloval, postupoval podle návodu na "ostrých datech" a výsledkem byla tato chyba: Expression.Error: Sloupec Column18 tabulky se nenašel. Můžete mě zkusit navést, kde by mohla být chyba?
citovat
MePExG(30.3.2018 13:53)#040028 Toto riešenie je založené na rovnakej vstupnej štruktúre zdrojových údajov (súborov). Nie je tam žiadne ošetrenie chýb, lebo neviem aké chyby ošetrovať. Buď niektorý súbor nemá totožné umiestnenie tabuľky, alebo tabuľka nie je na totožne nazvanom liste. Keď upravíte zdroj, alebo mi dáte vzorku, skúsim PQ upraviť, aby k takejto chybe nedošlo. Samotná hláška ohlasuje, že pri spracovaní nie je k dipozícii stĺpec Column18.
citovat
bedha(30.3.2018 13:57)#040029 Zkusil jsem do jednoho ze zdrojových souborů nakopírovat hodnoty z "ostrého", a chyba se při načítání vyskytuje i teď. Upravený zdroj dat nahraný v příloze. V "ostrém" souboru jsou ještě další listy a grafy apod. nevím zda něco z toho nemůže chybu způsobit...
Příloha: 40029_zdroj_dat_b.xls (90kB, staženo 32x) citovat
bedha(30.3.2018 14:00)#040030
MePExG(30.3.2018 17:02)#040031 Upravil som riešenie, ktoré vypúšťalo určitý počet riadkov zo začiatku a robilo spracovanie po súboroch. Teraz spracuje všetky súbory súčasne a vypúšťanie riadkov robí iba podľa podmienok na stĺpcoch.
Příloha: 40031_ppq-subory-a-max.xlsx (24kB, staženo 37x) citovat
bedha(3.4.2018 10:10)#040035 Moc Vám děkuji, nyní to už funguje. Vyzkoušel jsem se složkou ve které bylo cca 240 souborů a data se načítala více než 5 minut, dalo by ošetřit, aby se načítala data pouze z vybraného listu a ne ze všech co v souboru jsou? Nevíte o nějaké stránce, kde by na power query byly návody? Zkusil bych si upravit sám...
citovat
MePExG(3.4.2018 14:09)#040038 Pardon v rýchlosti som zabudol dať filter na Titulní list. Už je spracovaný iba tento list (v prílohe). Najlepšie youtube ale pár videí som natočil aj ja na FB-u MEPEXG.
Příloha: 40038_pppq-subory-a-max.xlsx (24kB, staženo 51x) citovat
bedha(3.4.2018 16:51)#040039 moc děkuji, ještě jsem si soubor drobně upravil a splňuje přesně to, co jsem očekával. Mohu se Vám za pomoc nějak odvděčit?
citovat
MePExG(3.4.2018 17:53)#040041 Som rád, že som pomohol
.
citovat