Nejste přihlášen/a.

Přihlásit se do poradny

 

Tlačítko kopírování v Excelu

Od: benesto1* odpovědí: 6 změna:

Ahoj,

potřeboval bych poradit, jak má vypadat kód pro makro. Představa je taková, že po kliknutí na tlačítko, by se vybrané buňky (3 za sebou) zkopírovali do druhého listu. A ještě bych potřeboval udělat aby se mi po každém zmáčknutí ty hodnoty zkopírovali pod ty poslední (tedy nepřepisovali se)

Toto jsem zatím vytvořil a moc to nefunguje

Sub Makro2()
Range("A12:C12").Select
Selection.Copy
Sheets("List3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("List1").Select
End Sub

Budu rád za každý námět. Díky

 

 

6 odpovědí na otázku
Řazeno dle hodnocení

 

 

dzordz*

0x

Samozřejmě by to šlo, ale skoro určitě má váš problém lepší a efektivnější řešení. K čemu to má sloužit?

benesto1*

ahoj,

má to sloužit k evidenci odpisu věcí, a následné kontole. Kdy budu chtít vědět zpětně jaký měsíc se kolik kterých věcí vydalo.

Naskýtá se možnost to psát rovnou do tabulky. bohužel tato možnost je nepřípustná. Protože bych potřeboval pro každou pobočku zvlášt tabulku (=vytvořil bych si totální chaos )

Díky

dzordz*

Proč je ruční zápis nepřípustný?

Má vám to takhle tedy krom počtu kusů kopírovat i typ zboží, info o pobočce, datum?

Jak se budou opravovat chyby, když kliknete dvakrát, nebo kliknete ve chvíli, kdy jsou vyplněny špatné údaje? Bude se to umazávat nebo přepisovat ručně?

Neříkám rovnou to psát do accessu přes nějaký vkládací/editační formulář (i když by to možná bylo nejlepší), ale třeba vytvořit seznam druhů věcí, seznam poboček, pak založit společnou tabulku, kde by se z rolovací nabídky zvolila věc, pobočka, napsal počet a datum, hotovo. Nebo tuto tabulku teda duplikovat pro každou pobočku a pak někde mít součty.

Prostě cokoli, kde je nutné dělat takovouhle operaci, jako přihazovat makrem dospod sloupečku, se mi nezdá štastným řešením.

 

figurek*

0x

děláte starou známou začátečnickou chybu, máte makra plná balastu.

1/ Vymažte a nepoužívejte dvojice Select-Selection.

2/ v makru doplňte řádek, který vypíná grafický pohyblivý okraj, který se v Excelu objevuje při kopírování.

Vaše hokus pokus makro by mělo vypadat tady takto :

*

Sub Makro3()
Sheets("List1").Range("A12:C12").Copy
Sheets("List3").Range("A1:C1").PasteSpecial
Application.CutCopyMode = False
End Sub
*

Až potud je věc celkem jasná a snadná. Tak si vyzkoušejte jak zdroják funguje, zkuste poměnit adresy buněk, jména listů a tak dále, abyste mu dobře rozuměl. Já potom přidám.

Ve druhém kroku už věc tak jasná a snadná nebude, protože budeme makrem hledat první neprázdnou buňku na neaktivním listu a kopírované buňky vkládat o jeden řádek pod ni.

doplněno 07.07.14 16:08:

džordži pode mnou, neušlo vám něco? Tazatel poptává něco úplně jiného než je excelácké linkování z buňky na buňku a já ho k tomu něčemu jinému dostrkávám.

dzordz*

Tak proč se s tím vůbec kopírovat?

Range("A1:C1").Value = Range("A12:C12").Value

..a je to

doplněno 07.07.14 16:29:

Já vím, co poptává. (Sice nevím proč, ale to je jedno.)

Když už to máte takhle zjednodušené bez Selection a neukazuje to pohyblivý okraj po kopírování, tak se to může zjednodušit ještě víc.

doplněno 07.07.14 16:31:

aby se neřeklo: Sheets("List3").Range("A1:C1").Value = Sheets("List1").Range("A12:C12").Value

 

benesto1*

Ahoj,

děkuji za odpověďi.

1. když klepnu dvakrát, tak by to chtělo pohlídat - díky za upozornění. Je téměř jisté že se dva řádky pod sebou nebudou nikdy opakovat. Takže by asi šel vytvořit alg, který by toto hlídal a v případě shody nekopíroval.

2. při odklepnutí špatných údajů se to jednoduše vymaže. a zas bude řádek volný. data mi nemusí jít jednotlivě přesně za sebou jelikož budou opatřena unikátními kódy které jednoznačně určí objednávku. Jde o to to mít sesumarizované.

3. ten základní vzorec chápu, obávám se ale že na ten cyklus hledající volný řádek a zabezpečení dvojího kliknutí mé síly stačit nebudou. Leč budu se snažit

doplněno 07.07.14 17:26:

4, při nakopírování hodnot to hlásí chybu ref. Zdá se mi tedy že to nenakopíruje pouze jako hodnoty.

doplněno 07.07.14 17:29:

Bod 4 jsem vyřešil: Paste:=xlPasteValues

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]