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 :bigups: 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