< návrat zpět

MS Excel


Téma: VBA rss

Zaslal/a 29.7.2010 15:33

Ahoj,
potřebuju ve VBA napsat toto:
mám sloupec hodnot, když vyberu (třeba kliknu) první (horní) buňku s hodnotou dojde automaticky k nakopírování všech hodnot ve sloupci a vložení všech hodnot jinam (třeba do sloupce začínajícího v buňce B5).
Děkuju za pomoc

Zaslat odpověď >

#002023
Začátečník
Moc nerozumím pojmu:
dojde automaticky k nakopírování všech hodnot ve sloupci a vložení všech hodnot jinam (třeba do sloupce začínajícího v buňce B5).
Pokud je myšleno celý sloupec, pak je to "neřešitelný" problém. Bude totiž chybět 5 řádků pro nakopírování.
Nějaký lepší příklad nebo ukázka by nebyla.

Možné řešení:

sl = 1 ' požadovaný sloupec v tomto případě 1 (tedy A)
rd_kam = 5 ' číslo řádku kam se má kopírovat
sl_kam = 2 ' číslo sloupce kam se má kopírovat (tedy B)
If ActiveCell.Column = sl And ActiveCell.Row = 1 Then
Range(Cells(1, sl), Cells(65536 - rd_kam, sl)).Copy ' výběr buněk pro kopírování (celý sloupec A mínus počet řádků)
Cells(rd_kam, sl_kam).Select
Paste
Application.CutCopyMode = False
Cells(2, sl).Select
End If


Celou proceduru pak vložit na daném listu do procedury Worksheet_SelectionChange(ByVal Target As Range)citovat
#002026
avatar
Myslel jsem to tak, že když budu mít v tom sloupci třeba dvacet hodnot nakopíruje to pouze těch dvacet hodnot a uloží ten sloupec dvaceti hodnot jinam (v B5 bude první hodnota a v buňkách pod B5 bude těch devatenáct dalších hodnot). Ale jde mi taky o to, aby se při změně počtu hodnot ve sloupci nakopírovaly vždy všechny hodnoty, ať jich je dvacet, třicet nebo patnáct(aby to reagovalo na změnu počtu hodnot).Díkcitovat
#002028
avatar
A ještě pokud to půjde tak bych potřeboval, aby sloupec hodnot z kterého budu kopírovat nezačínal v prvním řádku, ale třeba ve třetím -to znamená aby se nakopírovaly všechny hodnoty od třetího řádku až do konce sloupce hodnot (nechci, aby se nakopírovalo to co je v řádcích nad sloupcem hodnot).
Ještě jednou děkuju za trpělivost a pomoc.
Příloha: zip2028_kop.zip (2kB, staženo 21x)
citovat
#002030
Začátečník
Popis makra je snad dost výstižný.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

sl = 1 ' požadovaný sloupec v tomto případě 1 (tedy A)
rd_odkud = 3 ' číslo řádku odkud se má kopírovat
rd_kam = 5 ' číslo řádku kam se má kopírovat
sl_kam = 2 ' číslo sloupce kam se má kopírovat (tedy B)

' pokud jsi na prvním řádku požadovaného sloupce (sl)
If ActiveCell.Column = sl And ActiveCell.Row = 1 Then
' výběr buněk pro kopírování
Range(Cells(rd_odkud, sl), Cells(ActiveSheet.UsedRange.Rows.Count, sl)).Copy
' nastavení se na buňku kam kopírovat
Cells(rd_kam, sl_kam).Select
' vložení
Paste
' zrušení označení oblasti pro kopírování
Application.CutCopyMode = False
' nastavení kurzoru na druhý řádek vybraného sloupce
Cells(2, sl).Select
End If

End Sub
Příloha: zip2030_kop.zip (11kB, staženo 29x)
citovat

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