Kopírování buněk Vyřešeno

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

Moderátor: Mods_senior

astary
nováček
Příspěvky: 9
Registrován: květen 11
Pohlaví: Muž
Stav:
Offline

Kopírování buněk

Příspěvekod astary » 27 kvě 2011 14:23

Dobrý den,

potřeboval bych pomoct s makrem. Chtěl bych proceduru, která by kopírovala hodnoty z jednoho listu do druhého, ale aby odkazy na vstupní i cílové buňky byly řešené odkazem (jejich umístění se může měnit a nerad bych to potom dohledával přímo v proceduře).
Momentálně mi funguje procedura "lepší makro record", kdy to pro každé kopírování vstupní a vložení do výstupní buňky mám jeden proces, což celou proceduru kódově dost roztahuje.
V příloze je ukázkový soubor. Není to nic složitého. Prostě vezme zažlutěná buňka (např. Vstup 1) na listu "Vstupy" a nakopíruje se do listu "Výstupy" do zažlutěné buňky "Výstup 1". Tzn. Vstupu 1 je přiřazená konkrétní výstupní buňka Výstup1.
Moje představa je, že bych měl všechny odkazy na vstupní a výstupní buňky jako proměnné. Z nich bych vytvořil dvě množiny a proceduře řekl, že pro každou položku v množině vstupních buněk má provést kopírování a potom vložení do konkrétní výstupní (cílové buňky). Nejsem ten cyklus ale schopný naprogramovat :?

Předem díky za pomoc.
Přílohy
demo.xlsx
(7.95 KiB) Staženo 26 x

Reklama
Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk

Příspěvekod Poki » 30 kvě 2011 09:29

V prilozenem souboru jsem nenasel zadne makro (asi proto, ze soubor .xlsx nepodporuje makra), tak jsem uplne nevedel, co presne ma to makro delat.
Zkusil jsem neco vytvorit, podivejte se do prilohy, treba to bude ono...
Přílohy
demo.xlsm
(15.25 KiB) Staženo 38 x

astary
nováček
Příspěvky: 9
Registrován: květen 11
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk

Příspěvekod astary » 30 kvě 2011 10:40

Omluva za nepřesné zadání.
V příloze je soubor i s ukázkou, jak to mám momentálně napsané já (v komentářích).
Jde mi o to, jestli se dá ze všech vstupních buněk definovat skupina, která bude každé vstupní buňce přiřazovat právě jednu konkrétní výstupní a pak jenom nějakému cyklu říct, ber jednu vstupní buňku za druhou kopíruj hodnoty do výstupních buněk na základě definované množiny (skupiny).
Jde něco takového naprogramovat?
Přílohy
demo_v1.xlsm
(15.39 KiB) Staženo 18 x

Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk

Příspěvekod Poki » 30 kvě 2011 15:25

No, pokud si chcete rucne napsat, v jakych bunkach ty hodnoty maji byt, tak to jde udelat pres pole, kde si odpovdaji vzdy hodnoty podle indexu.
Přílohy
demo_v1.xlsm
(15.54 KiB) Staženo 37 x

astary
nováček
Příspěvky: 9
Registrován: květen 11
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk

Příspěvekod astary » 31 kvě 2011 09:02

Super. S pevně daným cílem to funguje. Není to sice o tolik rychlejší, než zápis bez cyklu (měl jsem velké oči) :smile: , ale kód je asi tak o 100% přehlednější. Takže tisíceré díky.
Ještě jsem zkusil jednu variantu zápisu pro jiné makro, které by nemělo přesně definované výstupní buňky, ale kopírovalo by hodnoty do první prázdné buňky v určitém sloupci.
Bohužel mi to hází chybu: 1004: Application-defined or object-defined error a zažlutí to řádek s kopírováním hodnot do cílévého listu a sloupce.
Už jste mi pomohl pravděpodobně stejnou chybu odstranit v jiném příspěvku (viewtopic.php?f=35&t=67989), tak jsem zkusil stejný postup, ale chyba nezmizela. Netušíte, čím to může být?
Přílohy
demo_v2.xlsm
(15.84 KiB) Staženo 11 x

Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk

Příspěvekod Poki » 31 kvě 2011 09:30

No - vidim, ze porad pouzivate metody .Copy a .Paste - tady byste mel vedet, ze pokud chcete 'kopirovat' jen jednu bunku, nema to smysl.
Tyto metody totiz funguji pouze na aktivnim listu, to znamena, ze kdyz chcete kopirovat bunku na listu Vstupy, musite ho mit aktivni 'Worksheets("Vstupy").Activate' a pote vlozit na list list Vystupy (opet musite zaktivnit list Vystupy).
Mnohem vyhodnejsi je pouzit jen proste prirazeni hodnoty: 'Worksheets("Vystupy").range("a1") = 'Worksheets("Vstupy").Range("b2") - tento kod priradi do bunky A1 na listu Vystupy stejnou hodnotu, ktera je v bunce B2 na listu Vstupy.

Pro doplnovani hodnot do vzdy nasledujici prazdne bunky ve sloupci je vhodnejsi pouzit Cells(65000,2).end(xlUp).Row+1 (65000 proto, aby to fungovalo i v Excelu 2003, kde je jen neco malo pres 65 000 radku).
Vyhodnejsi je to proto, ze pokud hledate konec oblasti (.End(xlDown)) zhora a zacinate prvnim radkem, ktery je obsazeny (druhy uz ale neni), naleznete posledni radek listu (pod nim uz zadne dalsi radky nejsou a prijde chyba...)
Přílohy
demo_v2.xlsm
(15.8 KiB) Staženo 24 x

astary
nováček
Příspěvky: 9
Registrován: květen 11
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk

Příspěvekod astary » 31 kvě 2011 10:16

Děkuju za info. Já bych klidně použil to přiřazení, ale budu potřebovat kopírovat nejen jednu buňku, ale i oblast a tam už mi to přiřazení nefungovalo. Bohužel nefunguje ani copy/paste se zaktivněním listů (v příloze) :-/ Procedura je schopná najít cílové buňky, ale už není schopná tam vložit hodnoty. Na to se to šprajcne :-(
S tím hledáním prázdné buňky děkuju. Sice v tom finálním souboru pod hlavičkou tabulky s hodnotami už budou jen jeden záznam za druhým (žádná prázdná buňka), ale nemusím mu říkat, na kterém řádku je hlavička (kdyby se náhodou posunula nahoru/dolů).
Přílohy
demo_v3.xlsm
(16.16 KiB) Staženo 13 x

Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk

Příspěvekod Poki » 31 kvě 2011 14:17

Tak tedy kopirovani:
Pokud chcete pouzit .Copy - musite nejdriv bunky vybrat pomoci .Select (na aktivnim liste)
pro vlozeni musite udelat to stejne, vybrat prvni bunku oblasti, kam se ma vlozit zkopirovana oblast (.Select) a pak vlozit pomoci: ActiveSheet.Paste
Přílohy
demo_v3.xlsm
(15.3 KiB) Staženo 83 x

astary
nováček
Příspěvky: 9
Registrován: květen 11
Pohlaví: Muž
Stav:
Offline

Re: Kopírování buněk  Vyřešeno

Příspěvekod astary » 31 kvě 2011 14:35

Super. To je ono. Mockrát děkuju za pomoc a trpělivost! Opravdu mi to hooooodně pomohlo!


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Kopírování řádků s funkcí když Příloha(y)
    od Martyn20 » 20 črc 2023 16:50 » v Kancelářské balíky
    3
    2145
    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
    1372
    od šulda Zobrazit poslední příspěvek
    23 úno 2024 07:12
  • Kontrola kopírování dat z jednoho disku na druhý Příloha(y)
    od orfan » 25 dub 2024 11:59 » v Vše ostatní (sw)
    15
    1112
    od orfan Zobrazit poslední příspěvek
    25 dub 2024 19:51
  • Libre Office Calc - Divné chování při kopírování textu Příloha(y)
    od EZumrova » 02 dub 2024 08:12 » v Kancelářské balíky
    14
    2269
    od kecalek Zobrazit poslední příspěvek
    05 dub 2024 19:11

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

Kdo je online

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