
Makro VBA -kopírování do první prázdné buňky
Zdravím všechny,
hodně jsem googloval, ale odpověď, která by řešila můj problém jsem nenašel, proto se obracím na Vás.
Píšu jednoduché makro, které má za úkol zkopírovat buňky z jednoho listu a vložit do druhého. Ve druhém listu je seznam a já chci, aby se data z prvního sešitu ukládala do druhého listu postupně (aby tvořili seznam, tj. vložení do první prázdné buňky).
Tady je můj kód
Sub faktura_vydana()
Sheets("FAKTURA").Activate 'vybere listu faktura
Range("J15").Select
Selection.Copy 'vybere buňku a zkopíruje
Sheets("VYDANÉ FAKTURY").Activate 'vybere list vydané faktury
xx xxxxx 'zde by měl být příkaz na vložení dat do prvního volného řádku ve sloupci
End Sub
Za jakoukoli radu/odkaz předem velice děkuji!
Něco pro inspiraci
http://office.lasakovi.com/excel/vba-listy-bunky/r adky-sloupce-excel-vba-kody/#02
To jsem taky našel, zkoušel jsem to napasovat na svůj kód a nějak se mi to nezadařilo, napadlo mě použít i Do..Loop, ale za boha nevím jak to implementovat
A nějaký vzorek nebo alespoň kam se mají data kopírovat (sloupec)?
Mají se kopírovat hodnoty z listu1 J15,H4,D14,I43,J17 do sloupců A1(J15), B1(H4), C1(D14), D1(I43), E1(J17) v listu2 *kam se má kopírovat která buňka*
Samozřejmě se to musí vždy kopírovat na další řádek, na list2, kde se tvoří seznam
- je to forma na fakturu, kde v listu1 je šablona faktury a cíl je, aby se po stisku čudlíku určitá data zkopírovala do vedlejšího listu, kde bude seznam kdy byla která faktura vydaná, jakou má splatnost, částka apod.
Klidně pošlu excelovský soubor a za jakoukoli radu jsem neskonale vděčný.
Jo soubor pošli, kouknul bych se na to.
Jen doufám, že to není žádná akutka, v poslední době sem na štíru s časem - rekonstrukce.
PS: do konce týdne bych to měl zvládnout, pokud nebude někdo rychlejší
Poslal jsem na email, nn není, času dost:)
Taks to napasoval blbě (pokud neuvedeš kód, nic jiného Ti říct nemůžeme). Cpát do toho cykly je zbytečný zpomalení. Tento kód:
prostě musí fungovat!
Jen musíš v prvním řádku místo "A1" zvolit tu správnou buňku. Jediná komplikace spočívá v tom, že pro správnou funkci výše uvedeného kódu musí sloupec obsahovat souvislý blok obsazených buněk. Tzn. - pokud třeba máš první řádek prázdný, pak máš v řádcích 2 a 3 nějaké záhlaví tabulky, pak opět 1 řádek prázdný, a teprve od pátého řádku jsou již obsazené buňky souvislé, tak v příkazu místo "A1" napíšeš "A5".
Dobry den tohle Vám pomůže.
'cyklus se ukončí jak najde prázdnou buňku
Do Until Selection = ""
Select Case Selection
End Select
'
Dim FrstR As Long, FrstCll As Range
With ActiveSheet
FrstR = .Range(.Range("A1"), .Range("A1").End(xlDown)).Rows.Count
Set FrstCll = .Range("A1").Offset(FrstR, 0)
End With
' MsgBox FrstCll.Address
FrstCll.Select
ActiveSheet.Paste
Loop
Pro případné další, téma bylo již vyřešeno (9.10) přes e-mail.
Edit:
Pokud by někoho zajímal kód tak zde.