Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

simstriks
nováček
Příspěvky: 15
Registrován: září 17
Pohlaví: Nespecifikováno
Stav:
Offline

Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod simstriks » 14 zář 2017 09:28

Dobrý den,

vím, že kopírování dat ze souboru do souboru zde již bylo mnoho krát probráno a jinde na google taky. Leč má situace je (podle mě) trochu jiná a obtížnější. Proto zakládám nové vlákno.

jedná se o toto. Přikládám zde soubor .zip kde najdete 3 soubory .xls. První se jmenuje souhrn, druhý leden a třetí únor.

Potřebuji, aby v souboru souhrn bylo vyrobeno makro, které po stisknutí tlačítka udělá toto:

Podívalo se do externího souboru Leden a zjistilo, zda data (Divize;středisko;Team;seriove číslo; materialove cislo) které jsou v souboru leden a v souboru souhrn jsou stejná. K zjištění, zda jsou data stejná nejde použít jako klíč pouze jeden sloupec, ale dva (seriové číslo a materialove číslo). Tyto dva údaje dělají z každého řádku unikátní řádek. Provedeme tedy kontrolu, a pokud v souboru leden a v souboru souhrn nalezneme shodu, doplníme tabulku souhrn o data, které jsou v souboru leden - leden_kusy, Leden_cas a leden_hodnota.

pokud zjistíme, že v souboru leden je nějaký řádek navíc, musí se řádek do souboru souhrn přidat a opět doplnit hodnoty.

Stejný postup bude, s měsícem únor. Může ale nastat situace, kdy naopak v únoru nebude řádek, který je v souboru souhrn. Poté se NEBUDE řádek mazat se souboru souhrn, ale nechá se prázdná buňka.

Soubor souhrn bude v té samé složce, kde budou zdrojová data. A každý měsíc zde automaticky přibyde soubor s daty za uplynulý měsíc. Zdrojová data budou vždy v těch samých sloupcích jako každý měsíc. Jenom budou jiné data. Po stisku tlačítka, by makro zjistilo, zda nepřibyl nový měsíc a pokud ano, provede porovnání dat a připíše data do souboru souhrn. Přiložené data jsou pouze pro představu, co musí makro dělat. Pravé zdrojové data budou mít kolem 19000 řádku. Záleží na měsíci.

Pomohli byste mi prosím takový program dát do kupy?

Díky moc všem! :)

navrh.zip
(25.13 KiB) Staženo 64 x

Reklama
MePExG
Level 2
Level 2
Příspěvky: 193
Registrován: srpen 16
Pohlaví: Muž
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod MePExG » 14 zář 2017 16:39

Dobrý deň. Ja som považoval svoje riešenie za dostatočné http://wall.cz/index.php?m=topic&id=37427&page=2#posts hlavne keď ste po tom už nekomunikovali.

simstriks
nováček
Příspěvky: 15
Registrován: září 17
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod simstriks » 14 zář 2017 16:44

Ahoj,

ano, od té doby se bohužel asi 10x změnilo zadání :(... Nyní problém vypadá tak, jak jsem ho popsal. Je to už určitě finální verze, odsouhlasená. Potřebuji, aby se mi tam "pouze" nahráli data do správných sloupců a případně se řádek přidal... Poté už vím co s tím, abych dostal požadované grafy a jiný výstup. Musí ale být načtení dat (ze zadání) pomocí VBA...

Pokud by si věděl a měl čas, bylo by to super... už mám tohoto úkolu plné zuby :D.

Díky :)

simstriks
nováček
Příspěvky: 15
Registrován: září 17
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod simstriks » 15 zář 2017 08:14

Zdravíčko :).

tak co? Napadlo prosím někoho něco, jak načtení dat do souboru udělat? :)

Díky moc

Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 366
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod elninoslov » 19 zář 2017 08:56

Nieje z toho nič jasne vysvetlené. Napr.:
-Odkiaľ sú údaje v Souhrn A:F ?
-Nie je to náhodou predošlé porovnanie (teda každé ďalšie prepisuje predošlé???) ?
-Vždy sa má načítať iba 1 súbor, alebo vždy všetky, ktoré sú v adresári ?
-Jednoznačné ID je "seriove cislo" & "materialove cislo" ? Nemôže teda nastať, že iná divízia, alebo iné stredisko či iný team bude mať rovnakú kombináciu "seriove cislo" & "materialove cislo" ? Určite ?
-A čo duplicity ? Čo ak bude v dátach viac riadkov s rovnakou kombináciou "seriove cislo" & "materialove cislo" ?
-Dáta sa z mesiaca teda načítajú v 2 prípadoch z 3 možných. V prípade zhody kombinácie "seriove cislo" & "materialove cislo" a v prípade, že Souhrn neobsahuje dáta z mesiaca. V prípade, že mesiac neobsahuje dáta zo Souhrn - vynechá príslušný riadok v Souhrn. Tak ?
-Za "dáta v Souhrn" považujete len dáta v stĺpcoch A:F ? Alebo aj dáta v ďalších pridaných stĺpcoch za predošlé mesiace ? Napr. vo februári považujete za "dáta v Souhrn" nielen stĺpce A:F ale aj stĺpce z januára teda aj G:I s ktorými by sa netuším čo robilo ?
-Ten stĺpec "plán" nedáva príliš zmysel, ak je pre každý mesiac v roku rovnaký ? Vám výrobu neovplyvňuje počet dní v mesiaci. Počet pracovných dní, sviatky, dovolenky ročné obdobie, choroby, predvídateľné veci ako avizované výpadky dodávok, ekonomický pokles odberateľov, atď... Nemal by byť plán na každý mesiac iný, podľa počtu prac dní, či podľa dopytu? Nedáva mi to zmysel, keďže všetky mesiace dávate veľa seba, a rovnaké kombinácie "seriove cislo" & "materialove cislo" z rôznych mesiacov sú v rovnakom riadku s rovnakým plánom.

Nikto Vám nepomohol asi práve preto, že si to musí 10x prečítať, aby trošku pochopil, potom 5x prečítať či ho nenapadne nejaké riešenie toho, čo dobre nechápe = zbytočná práca. A zložitosť prípadného riešenie možno tiež nebude brnkačka.

Tých otázok je určo viac, toto ma len rýchlo napadlo.

simstriks
nováček
Příspěvky: 15
Registrován: září 17
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod simstriks » 19 zář 2017 10:04

Ahoj elninoslov :).

Díky za reakci.

Odpovědi si musím promyslet a případně ještě probrat s kolegou, abych mohl 100% dobře odpovedět. Kolega bohužel není do ČT v práci. V pátek s ním všechno proberu. Během těch pár dnů, co zde vlákno vysí jsem s problémem trošku pohl. Proberu otázky s kolegou a v pátek napíšu.

Díky za probuzení tématu :).

Měj se.

simstriks
nováček
Příspěvky: 15
Registrován: září 17
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod simstriks » 26 zář 2017 09:50

Zdravím elninoslov a ostatní :)

Pečlivě jsem problém probral s kolegou a zároveň na problému zapracoval. Věřím, že nyní bude zadání úkolu o mnoho jednodušší (možná, že se VBA pro dořešení problému vyhneme úplně).

Přikládám zde soubor, kde jsem patřičně okomentoval listy "Insert_data" a "overwiev".

v Listě "Insert_data" je pouze ilustrační formulář (je třeba jej spustit z karty vývojář), kterým vložím data do konkrétních listů pro konkrétní měsíce. Změna oproti minulému problému je, že nyní budou všechny data, porovnání i grafy v jednou souboru a ne v několika. Nyní tedy předpokládejme, že máme data naimportovaná a VŽDY budou ve stejných sloupcích jak jsou nyní v předváděcích datech.

Co zůstává stejné jako v předchozím případě je to, že potřebuji provést porování, zda dané výrobky (jednotlivé řádky) v jednom měsíci jsou v druhém. Jako klíč pro porování se musí použít sloupec "seriove_cislo_6_cisel" a "materialove_cislo" .Pokud ano, proveď porovnání (popsané v listě overwiev). Pokud ovšem je výrobek v Lednu, ale není v únoru, nelze provést porování. Porování takového výrobku provádíme pouze v případě, že by se třeba ten výrobek který nebyl vyráběn v ledu, byl vyrávěn v březnu a chtěli bychom porovnat Unor s Březnem.

Data která přikládám jsou (akorád změné názvy a hodnoty a počet dat) jsou přesně v takovém formátu, jako budou originální data. Bude se stávat, že v jednom měsíci bude třeba 19000 řádků a v druhém třeba 25000 nebo naopak 14000. A často se stává, že třeba 2000 výrobků se v jednom měsici nevyrábí ale v druhém ano. Takže u těchto dvou měsíců porování u těchto 2000 výrobků neprovádíme. Data nejsou z importu seřazené.

Pokud by se vyskytl jakýkoliv dotaz, rád zodpovím, nebo zjistím.

Moc díky za pomoc s řešením problému.

EDIT:

v 9:56 (26.9.2017) jsem ještě upravil přílohu
Přílohy
Vzor_Data.xlsm
(27.05 KiB) Staženo 84 x

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod atari » 26 zář 2017 11:16

simstrik:
1. Předpokládám, že objem požadované práce přesahuje rámec této poradny zdarma. (Nevylučuji však se někdo najde a ten čas tomu věnuje.)
2. A vzhledem ke složitosti projektu také předpokládám, že tato finální verze (asi už jedenáctá) bude finální jen omezenou dobu.

Tím chci říct, že ve výrobě neexistuje finální verze softwaru !! Vždy dochází k nějakému vývoji a novým požadavkům. Pokud se Ti povede zde zbastlit nějaký výsledek, tak v budoucnu při každé změně, budeš zase trávit čas tím, kdo a jak by poradil s úpravou.

Proto doporučuji:
a) Nauč se programovat a udělej si to sám.
b) Sežeň profesionála za peníze, ať to naprogramuje a v případě změn v budoucnu, se bude o projekt starat. Takže budeš mít úpravy v řádu hodin, (nebo jednotek dnů). A úspora času jsou ve výrobě ušetřené/vydělané peníze, daleko větší, než odměna programátora.

simstriks
nováček
Příspěvky: 15
Registrován: září 17
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod simstriks » 26 zář 2017 11:33

Atari:

Od začátku zadání úkolu jsem udělal dost práce sám. Co nyní potřebuji vyřešit, si myslím, že už půjde udělat i jiank než za použití VBA. Možná ne, nevím... Potřebuji vzít data, která jsem naimportoval do jednoho souboru a vykreslit je v grafu... aby byly přehlednější.

Možná si pochopil, že se jedná o aplikaci do práce... v práci mi nikdo na programátora peníze nedá. Mojí naplní práce není programování a mimo toto řeším mraky jiných věcí. Tím chci říct, že učit se programování na vysoké úrvni a platit za to programátora, který se mi bude věnovat, nebo i na nižší nemá pro mě smysl, protože dlouho dobu zase nebudu nic vytvářet (bůh ví jestli někdy ano)... Co jsem se díval na toto fórum a i jiné, není můj problém jediný na obtížnjší úrovni, který zde byl zadán a zdárně vyřešen... Samozřejmě, všechno záleží na ochotě lidí zde... Pokud nepomohou, mám smůlu :)...

když to shrnu...

Import dat bude pořád stejný... Porovnání bude také probíhat pořád stejně... Budou pouze nové výrobky, nebo naopak staré zmizí... ale to na chodu aplikace nic nezmění. Nyní jsem ve fázi, kdy potřebuji číselné hodnoty zobrazit ve grafu... Jak se toto zadaří, aplikaci už nebude důvod měnit, protože mi graf ukáže úsporu nebo naopak navýšení... A to je cíl...

Jinak fakt moc díky za radu - nauč se programovat a udělej si to sám... Moc přínostná rada :)...

Hezký den

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod atari » 26 zář 2017 14:57

simstriks píše: ... Potřebuji vzít data, která jsem naimportoval do jednoho souboru a vykreslit je v grafu... aby byly přehlednější.
Kdyby to bylo jenom o tom vytvořit z dat graf jak teď píšeš, tak už by Ti tady zřejmě někdo poradil.

simstriks píše:Jinak fakt moc díky za radu - nauč se programovat a udělej si to sám... Moc přínostná rada :)...
Pokud sis toho nevšimnul, tak jsem tučně označil variantu b), kterou doporučuji. K tomu ostatnímu - viz můj příspěvek výše (už bych se jen opakoval.)

Poznámka: velmi často za mnou chodí lidi, že potřebují udělat to a to, a že to je jenom "něco tohleto jednoduchého". A mají představu, že to (symbolicky řečeno) "spíchnu v bundě při odchodu na oběd" za pár minut. Realita je většinou jiná.

simstriks
nováček
Příspěvky: 15
Registrován: září 17
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod simstriks » 27 zář 2017 06:48

Kdyby to bylo jenom o tom vytvořit z dat graf jak teď píšeš, tak už by Ti tady zřejmě někdo poradil.


Odpoveděl si mi na můj nový příspevek asi hodinu po té, co jsem ho připnul... Jelikož se příspěvěk skládá s dlouhého popisku a souboru s dalším popiskem, je celkem nemožné, aby to někdo stihl přečíst, pochopit a odpovědět (věřím, že ani Ty jsi to nestihl přečíst (a rovnou si psal svůj příspěvek) a pochopit, o co nyní jde. Pokud by jsi to přečetl, možná by jsi věděl během chvilky jak porovnání a graf udělat)...

Pokud sis toho nevšimnul, tak jsem tučně označil variantu b), kterou doporučuji. K tomu ostatnímu - viz můj příspěvek výše (už bych se jen opakoval.)


nejedná se o žádný "projekt". A proto (jak jsem psal) mi na to nikdo peníze nedá. Je to pouze pro denní reporty pro naše malé oddělení, které dělá nyní kolega ručně a trvá to vážně dlouho + spousta nepřesností. Ale chápu, že to tvůj problém není. Musím se hold spolehnout na lidi zde, nebo mám smůlu :) (jak jsem psal)...

Poznámka: velmi často za mnou chodí lidi, že potřebují udělat to a to, a že to je jenom "něco tohleto jednoduchého". A mají představu, že to (symbolicky řečeno) "spíchnu v bundě při odchodu na oběd" za pár minut. Realita je většinou jiná.


Ano, to jsem pochopil při předchozí komunikaci s lidmi zde...

Možná by bylo lepší, místo tohoto naprosto bezúčelného dohadování, poučování a vysvětlování zkusit na problém kouknout, pokud možno vyřešit... Na žačátku bylo zadání kostrbaté, nepřesné... Ano, bylo. Ale nyní jsem o měsíc dál a díky lidem zde, jsem se něco naučil a tak si vyrobil (pro mě docela výkon) import ze tří souborů do jednoho a ještě jsem z těch tří souborů vybral jen ty sloupce a řádky, které chci. Když už jsem se dostal zde, chtěl bych problém dotáhnout do konce... aby čas všech nás, nepřišel v niveč. Pokud by jsi Ty sám měl čas a chuť, koukni prosím na dělání porovnání a grafů a napiš mi Tvůj objektivní názor na obtížnost porování a časovou náročnost... :)

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Excel - kopírování dat z jednoho souboru do druhého pomocí VBA

Příspěvekod atari » 27 zář 2017 09:04

simstriks píše:Odpoveděl si mi na můj nový příspevek asi hodinu po té, co jsem ho připnul... (věřím, že ani Ty jsi to nestihl přečíst

Tohle už je o nesmyslech. Tvůj příspěvek - zadání jsem četl již 14. září. A jelikož to je nad mé časové kapacity (protože VBA umím málo a vše mě douho trvá), tak jsem to jen začal sledovat. Jelikož mám mnohaletou praxi z provozu ohledně softwaru, tak jsem ti chtěl poradit jak to máš řešit. Pokud se ti to nelíbí, tak moje rady ignoruj, a řeš si to podle svého.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Nastavení zabezpečení internetu zabránilo v otevření jednoho nebo více souborů Příloha(y)
    od magnator » 06 čer 2023 10:23 » v Windows 11, 10, 8...
    3
    1784
    od mmmartin Zobrazit poslední příspěvek
    06 čer 2023 21:22
  • Nastavení druhého routeru Příloha(y)
    od šulda » 28 led 2024 11:10 » v Administrace sítě
    2
    772
    od šulda Zobrazit poslední příspěvek
    28 led 2024 16:12
  • (Ne)vypínání druhého monitoru
    od cechasso » 12 dub 2023 00:40 » v Problémy s hardwarem
    0
    783
    od cechasso Zobrazit poslední příspěvek
    12 dub 2023 00:40
  • Kopírování řádků s funkcí když Příloha(y)
    od Martyn20 » 20 črc 2023 16:50 » v Kancelářské balíky
    3
    1791
    od Melvidor Zobrazit poslední příspěvek
    21 črc 2023 08:41
  • Obnoveni ztracenych fotek z telefonu pri kopirovani do pc
    od Dizzy66 » 21 led 2024 17:08 » v Vše ostatní (sw)
    2
    1023
    od šulda Zobrazit poslední příspěvek
    23 úno 2024 07:12

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů