Stránka 1 z 1

Excel - makro pro kopírování dat z řádku v jiném listu

Napsal: 27 čer 2011 16:55
od doblo13
Prosím o pomoc s makrem. Poněvadž jsem lama, nevím si rady s vybráním buněk v řádku na jiném listu.

Potřebuji zkopírovat data z buněk vybraného řádku v tabulce na listu "data" do vytvořeného formuláře na listu "protokol", kde jsou buňky pro data různě rozmístěné mezi textem po listu. Výsledkem by měl být protokol doplněný daty, následně vizuálně zkontrolovaný a vytištěný. Případná oprava by se prováděla jednoduše ručně v tabulce na listu "data". Pokud by byla nějaká jednodušší možnost provést toto pro více řádků hromadně, bylo by to prima. Protokol je vždy tentýž.
Mám o tom nějakou přibližnou představu - viz příloha. Dělám to v Excelu 2000, ale lze to i v Sešitu Open Office, ten jen nemám tak zažitý. Předem děkuji za pomoc.

-----------------------------------------------------
28.6.2011 16:43

ZNOVU A JINAK :

Nikdo neodpověděl. Těch informací je asi moc. Zjednoduším to. S jednodušší přílohou DEMO:

Potřebuji makro pro zkopírování hodnot všech buněk v jednom určeném řádku, a to z listu DATA do listu PROTOKOL.

Výběr buněk pro kopírování se provede vložením znaku X do buňky ve sloupci A příslušného řádku v listu DATA. Makro skončí otevřením listu PROTOKOL s nakopírovanými daty, odtud se po kontrole provede tisk.
Některé buňky v listu DATA budou prázdné a taky v listu PROTOKOL zůstanou prázdné.

Data se zadávají do listu DATA pomocí šablony získané myší z lišty Data / Formulář.
Aby se šablona zobrazila je třeba, aby se kurzor byl na záznamu č.1 - tj. na pozici B5. Tam by se měl vždy vracet.

V příloze zasílám soubor Demo, kde je potřebné připraveno.
Všechna zatím potřebná jednoduchá makra jsem spáchal, ale s tím, aby to fungovalo na základě označení prostoru, který se má kopírovat si nevím rady.

Díky

Re: Excel - makro pro kopírování dat z řádku v jiném listu

Napsal: 29 čer 2011 20:00
od cmuch
Tady treba toto makro:

Kód: Vybrat vše

Sub NactiZaznam()
'Tichy rezim
Application.ScreenUpdating = False

'Najít radek s x
radek = Range("A1").End(xlDown).Row

Sheets(2).Activate
'Pokud není na radku neco tak se objevi hlaseni
If Sheets(1).Range("A" & radek) = "" Then

   MsgBox "Není zadán znak"
   GoTo konec
   
End If
'Vložit položky do tabulky
Range("H2") = Sheets(1).Range("B" & radek)
Range("H4") = Sheets(1).Range("C" & radek)
Range("D3") = Sheets(1).Range("D" & radek)
Range("E6") = Sheets(1).Range("E" & radek)
Range("G8") = Sheets(1).Range("F" & radek)
Range("D9") = Sheets(1).Range("G" & radek)

konec:
'Tichy rezim vypnout
Application.ScreenUpdating = True
End Sub

A aby byla vždy označena bunka B5 tak vlož do listu DATA toto:

Kód: Vybrat vše

Private Sub Worksheet_Activate()
Range("B5").Select
End Sub