< návrat zpět

MS Excel


Téma: Zápis dat do sloupce podle uživatele rss

Zaslal/a 17.8.2022 9:05

Zdravím vás, prosím o pomoc s makrem.

Mám ve workbooku 2 listy. Do prvního listu si uživatel nakopíruje díly, které chce načíst. Pak klikne na makro a potřebuji aby si uživatel mohl zvolit, ze kterého sloupce (Týdne) se bude kopírovat. Potřebuju nakopírovat vždycky data ze třetího řádku do sloupce C.

Např. Uživatel si nakopíroval tři díly do prvního listu a potřebuje do sloupce C nakopírovat data z 44. týdne (Sloupec Y) u těchto dílů.

Buď si do prvního listu dopíše ke každému dílu W44 nebo se ho vyskakovací okno zeptá, ze kterého sloupce chce zapsat data.

Děkuji moc za případnou pomoc.

Příloha: zip53170_dummy.zip (14kB, staženo 8x)
Zaslat odpověď >

Strana:  1 2   další »
#053173
elninoslov
???
Prvý list sa volá List2. Šmarjá prečo?
Potřebuju nakopírovat vždycky data ze třetího řádku do sloupce C

Prečo z tretieho riadku? Veď iný produkt bude na inom riadku...
Dáta sa kopírujú zo stĺpca C druhého listu označeného "Data" do stĺpca C prvého listu označeného "List2"? To ale nemá nič spoločné so stĺpcami týždňov...
Kopírovať teda treba do stĺpca C v List2 zo stĺpcov W33->Wxx v liste Data?
Veď to by šlo aj vzorcom, a výber týždňa by sa dynamicky menil v nejakej bunke s výberovým zoznamom. Tak to nemôže byť?
To označenie stĺpcov s týždňami je OK? Lebo na konci sú 3 stĺpce inak označené.

EDIT:
Ten 3. riadok už som pochopil. Myslíte tým tretí riadok skupiny riadkov daného matrošu.
Pridávam príklad na vzorce.
Příloha: xlsx53173_dummy.xlsx (19kB, staženo 7x)
citovat
#053174
avatar
Děkuji za pomoc.

Špatně jsem se vyjádřil. Potřeboval bych to nahrát do Sloupce C na listu Data, aby to přepsalo tu původní hodnotu do všech řádků v rámci skupiny. Protože pak se to projíždí dalším makrem, které bere data z toho sloupce.

List2 se to jmenuje proto, protože ten list není standartně součástí toho workbooku. To byl můj návrh řešení, že si uživatel vytvoří nový list, tam nakopíruje data a projede makrem. Ale asi bude lepší mít zvlášť excel v nějaké formě, kde by jen přepsal data a pak spustil makro.citovat
#053176
elninoslov
Takže List2 bude jeden SÚBOR, a list Data bude druhý SÚBOR. Budú obidva vždy otvorené? Lebo ak nie, makro bude musieť cieľový otvárať pre zápis, alebo otvárať zdrojový pre čítanie. Ktorý z nich má obsahovať to kopírovacie makro? Nevyjadril ste sa k zoznamu tých týždňov.

PS: Tie nové údaje v stĺpci C v zdrojovom liste/súbore List2, sú imaginárne a to sme si mali domyslieť ? 5citovat
#053177
avatar
Ano budou to dva soubory a budou oba otevřené. List2 se může jmenovat třeba Zdroj. Makro bude ve třetím souboru, ale pro tento případ to může být v soboru Data, to pak snad zvládnu předělat na naše data.

Týdny by měly být v pořádku, měli bychom počítat jen na těch 16 týdnů, takže stačí sloupce M-AB, ale doptám se zítra kolegyně, proč jsou ty tři týdny jinak.

V listu2 nejsou žádné údaje. Tam si uživatel nakopíruje jen ty díly, u kterých potřebuje data v týdny, které si zvolí. Prostě si tam nakopíruje díly, které chce, někde zadá ze kterého týdne chce načíst data a makro bude pracovat jen v souboru Data, vezme data z týdne 44. a nakopíruje je do sloupce C (Diff.) pouze u těch dílů, které našel v soboru, Zdroj (List2).

Vím, je to trochu krkolomné, ale takhle jsem to dostal. 3citovat
#053178
elninoslov
Nosal, Nosal, čo s Vami ? 9
To čo požadujete je triviálne makro! To napíšem aj z pamäti bez jediného spustenia. Čo ale naozaj nedokážem - je vidieť do Vašich myšlienok a pochopiť Vás.

"Nosal" napsal/a:

...Potřeboval bych to nahrát do Sloupce C na listu Data, aby to přepsalo tu původní hodnotu do všech řádků v rámci skupiny...

vs.

"Nosal" napsal/a:

...Prostě si tam nakopíruje díly, které chce, někde zadá ze kterého týdne chce načíst data a makro bude pracovat jen v souboru Data, vezme data z týdne 44. a nakopíruje je do sloupce C (Diff.) pouze u těch dílů, které našel v soboru, Zdroj (List2)...

Veď jedno druhému odporuje. Raz píšete, že sa majú údaje v Data prepísať a raz, že sa majú načítať.

ďalej nechápem tie týždne

"Nosal" napsal/a:

...do sloupce C (Diff.)...

To by potom znamenalo 2 makrá ??? Jedno makro NactiTyden, ktoré načíta pre materiál 2B-2B v bunke List2!A1 hodnotu z W44, teda -48840, zapíše túto hodnotu vedľa do List2!B1, užívateľ túto hodnotu nejako upraví a použije druhé makro ZapisNovuHodnotu, ktoré zapíše upravenú hodnotu do buniek C7:C10. Je to takto? Ak áno, netuším, ako som mal toto vydedukovať.

Pomôžte mi pochopiť Vás. PLS
Makro nebude prob.citovat
#053179
avatar
Bavil jsem se s kolegyní a ty tři poslední týdny jsou akorát v jiném formátu, protože se přidávaly nedávno a už se neupravilo makro, takže by se mělo počítat i s nima.

A k tomu mému zmatečnému popisu, zkusím to znovu. 5

Z listu zdroj se načte pouze název dílu, ty se pak porovnají s listem data a ty které najde, tak přepíše diff. podle týdne, který si uživatel zvolí.

Přikládám soubor, jak by to mělo ve finále vypadat. Uživatel chce tři díly, ty si nakopíruje do souboru (pouze názvy dílů) zapíše vedle nich číslo 14, to odpovídá týdnu 45. V soboru data spustí macro a to vezme data z 45. týdne a zkopíruje je to sloupce C. Pouze u těch dílů, které makro našlo v přechozím souboru. Ostatní díly nepřepisuje.
Příloha: xls53179_dummy_reseni.xls (44kB, staženo 5x)
citovat
#053180
elninoslov
Včera som si to +- takto aj načrtol. Doplnil som tam všelijaké kontroly, pretože môže nastať mnoho vecí medzi spustením 2 makier (zmena zdroja, zatvorenie zošitu, zmena listu,...). Spomínal ste, že v reále nebudú tie makrá ani v zdroji ani v dátach, ale v treťom súbore. Ak spustíme makro z iného ako z otvoreného súboru (Application.Run), tak sa ten súbor otvorí. Takže budú otvorené všetky 3? Ja to mám zatiaľ urobené tak, že tlačítka aj makrá sú v tom treťom obslužnom súbore. Nebolo by lepšie pridať do Ribbonu 2 tlačítka, a makrá mať v PERSONAL.XLSB? Makro mám funkčné, len to musím ešte večer vyskúšať.

EDIT: Jáj a ešte niečo. Vy v tom Diff. máte vzorce. Tie sa prepíšu tou zmenenou hodnotou zo zdroja. Ste si toho vedomý?citovat
#053181
avatar
Ano, všechny tři sobory budou otevřené.

Ale asi jsme se zase nepochopili. 5 jaká dvě makra? Jen jedno. Máme první makro a to je nastavené, že do Sloupce E zapíše data z pevně daného týdne. A já potřebuji, aby si uživatel mohl zvolit, které díly se zapíšou z týdne, který si zvolí.

A k tomu editu: Máte pravdu, já si toho nevšiml, když ve sloupci D je 0, tak se číslo vlastně nezmění. Tak v tom případě to potřebuji zapsat do sloupce E (Req. qty) aby ve sloupci C zůstal zachovaný vzorec.

Do PERSONAL.XLSB asi ne, ten sobour bude časem cestovat mezi více uživateli.citovat
#053183
elninoslov
Totálne sa nechápeme. Toto som si včera pripravil, že dnes dokončím, vyskúšajte ale je to NEDOKONČENÉ ....
Nenapadá ma, ako sa mám už pýtať. Vaše popisy sú pre Vás možno jasné a pochopiteľné, keď viete čo robíte, na čo myslíte, a čo chcete. Ja to fakt netuším. Pre mňa je to zmätočný popis. Nejednoznačný. Ako môžete zapisovať do týždňa, ktorý si zvolíte, keď chcete zapisovať do stĺpca C (po novom do D). To nemá s týždňom nič. Nemám teraz chuť čítať celú tému, a vypisovať Vám sem všetky nelogické veci (ktoré sú pre mňa nelogické, pre Vás možno nie) z textu. Napr. "ze kterého sloupce chce zapsat data" - tak buď "do kterého sloupce chce zapsat data" alebo "ze kterého sloupce chce načíst data" ...

2 makrá: Už som to písal. JEDNO - načíta data, DRUHÉ - zapíše data.
Příloha: zip53183_makro-tyzdne-nedokoncene.zip (55kB, staženo 7x)
citovat
#053185
avatar
Já se omlouvám, ale fakt si nerozumíme. 5

Psal jsem, že data se mají zapsat nově do sloupce E.

Do toho souboru, který jste pojmenoval Úprava se nemá zapisovat nic. Tam si jen uživatel sám, ručně zadá čísla těch dílů, u kterých chce zapsat číslo z týdne, který si zvolí. Pak klikne na tlačítko makro.

Například: Uživatel chce díl 2B-2B a potřebuje údaje z týdne 45. Tak otevře soubor Úprava a tam napíše název dílu (2B-2B) a zapíše vedle toho 14 (Protože 45. týden odpovídá čtrnáctému sloupci). Bude to lepší, když to bude psát jako pořadí takže buď 1-19 nebo sloupce M-AE. Protože za týden se to zase posune.

Pak klikne na tlačítko macro. Macro se spustí, podívá se do souboru Úprava jaké díly má hledat. Najde díl 2B-2B a hledá ten díl v soboru Data, když ho najde vezme data z třetího řádku daného dílu, ve sloupci, který uživatel předtím zadal. Chtěl 45. týden, takže vezme číslo -49 401 a zkopíruje a vloží/přepíše data ve sloupci E, takže vloží -49 401 do E7-E10.

Edit: Pročetl jsem své odpovědi ještě jednou a jestli jsem koukal správně, tak jsem nepsal, že má zapsat data do týdne ale vzít data/zkopírovat data z týdne.

Ono to řešení bude ještě triviálnější, jen se navzájem nechápem. 3

Prostě jen chci přetáhnout data z jednoho týdne, který si uživatel zvolil do sloupce E pro díl, který si uživatel zvolil. Viz příloha.
Příloha: xlsx53185_data_vzhled.xlsx (18kB, staženo 9x)
citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje