Stránka 1 z 1
Makro pro Excel
Napsal: 16 pro 2008 14:32
od d1amond
Zdravím,
mám dotaz na pokročilé uživatele Excelu (já naprostý laik co se týče VBA atp.). Lze nějak provést automatické načtení buněk mezi listy(nebo i sešity) po stisku tlačítka? Konkrétně, na listu S2 označím jeden řádek (např. 3) a po stisknutí tlačítka na listu S1 se mi pouze některé hodnoty z S2 řádek 3 přenesou do konkrétních buněk na S1(A1,B1,C1,D1...)?
Re: Makro pro Excel
Napsal: 16 pro 2008 18:09
od jirkaj.
No jde to. Bohuzel z tveho popisu to neni uplne jasne, ale to co si napsal splnuje nasledujici:
Sub makro()
Sheets("S2").Select
x = ActiveCell.Row
Range("A" & x & ",C" & x & ",E" & x & ",G" & x).Copy
Sheets("S1").Select
ActiveCell.PasteSpecial
End Sub
Staci priradit tlacitku na listu S1 toto makro.
Re: Makro pro Excel
Napsal: 16 pro 2008 18:58
od d1amond
Ještě že jsou chytřejší lidi. Podstatu jsi asi vystihnul, ale... Nějak mi tam u Range nesedí uvozovky.
A otázka je, kam se to vloží - resp. vložit by se to mělo na přesně danné místo na S1, např do buněk A5, A6, A7, A8.
De facto cílové buňky budou vždy stejné => S2 (A&x&) -> S1 (A5), atd...
Narážím na problém, jak uložit na S2 obsah buňky do proměnné y a poté vložit obsah proměnné y do konkrétní buňky v S1 - neumím to,ano..
Nějak takto, ale nejde to:
Private Sub CommandButton1_Click()
Sheets("Adresa").Select
x = Range("A1").Copy
Sheets("Form").Select
Range("A5") = x
End Sub
Re: Makro pro Excel
Napsal: 16 pro 2008 19:19
od iMohos
Spolužák měl na makro v excelu prezentaci,tak jestli ti pomůže
tak je zde
Re: Makro pro Excel
Napsal: 16 pro 2008 20:05
od d1amond
jj, díky, jsou to základy ale mé potřeby to nepokreje...
Re: Makro pro Excel
Napsal: 17 pro 2008 12:37
od jirkaj.
Tak to by melo vypadat takto:
Private Sub CommandButton1_Click()
Sheets("Adresa").Select
x = Range("A1").Value
Sheets("Form").Select
Range("A5") = x
End sub
Re: Makro pro Excel
Napsal: 17 pro 2008 14:29
od d1amond
ok, zkusím...
Private Sub CommandButton1_Click()
Sheets("A").Select
x = Range("A1").Value
Sheets("B").Select
Range("A5") = x
End Sub
Zkopírovalo se to na stejném listu z A1 do A5
Re: Makro pro Excel
Napsal: 17 pro 2008 15:02
od jirkaj.
Tomu se mi nechce věřit. Pokud máš opravdu pojmenované listy A a B pak makro načte hodnotu z listu A buňky A1 do listu B buňky A5
Re: Makro pro Excel
Napsal: 17 pro 2008 16:16
od d1amond
Opravdu to nejde. Zkouším to horem dolem a nic...
Když už jsme u toho brainstormingu, jak upravím x = ActiveCell.Row tak, aby mi třeba MsgBox vrátil číslo označeného řádku?
Re: Makro pro Excel
Napsal: 17 pro 2008 16:40
od jirkaj.
x = ActiveCell.Row
a = MsgBox("Číslo řádku je " & x, vbInformation, "Zpráva")
k tomu předchozímu to můžeš napsat takto:
Private Sub CommandButton1_Click()
x = Sheets("A").Range("A1").Value
Sheets("B").Range("A5") = x
End Sub
Re: Makro pro Excel
Napsal: 17 pro 2008 17:17
od navstevnik
Vracim se k puvodnimu pozadavku tazatele:
Na
listu S2 vybrat radek, po stisku tlacitka
na listu S1 prenest z listu S2 urcene bunky na list S1 do bunek A1,B1,...
tomuto pozadavku vyhovi neco takoveho - udalostni procedura v modulu Listxx(jmenolistu):
Kód: Vybrat vše
Option Explicit
Private Sub CommandButton1_Click()
Dim Bunky As Range, r As Long, i As Integer, Cil As Range, c As Range
'definice bunek, ktere maji byt preneseny ze zdrojoveho S2- vychozi pro prvni radek,
'poradi urcuje, jak budou serazeny na cilovem listu S1
Set Bunky = Worksheets("list2").Range("a1, g1, c1:e1, i1:j1") ' priklad
'cislo aktivniho radku na listu S2
Application.ScreenUpdating = False
Worksheets("list2").Select
r = ActiveCell.Row
Worksheets("list1").Select
Application.ScreenUpdating = True
'definice cile na listu S1
Set Cil = Worksheets("list1").Range("a1")
i = 0
'prenos bunek z listu S2 na list S1
For Each c In Bunky.Offset(r - 1, 0).Cells
Cil.Offset(0, i).Value = c.Value
i = i + 1
Next c
End Sub