Stránka 1 z 1
EXCEL - Makro volající list s podmíněnou adresou
Napsal: 18 bře 2008 08:05
od Morpheus
Ahoj lidi, můžete mi prosím někdo poradit, děkuji.
Mám následující problém, mám Excelovský sešit s mnoha listy na kterých jsou data vždy k jednomu vozidlu, potřebuji vytvořit makro, které přenese potřebná data z konkrétního listu, do listu posledního, který je specielně naformátován pro tisk. Nechci ale dělat makro pro každý list zvlášť a tak dotaz zní, zda je možné vytvořit univerzální makro, které by si jako zdrojovou oblast dat samo do sebe uložilo adresu listu, ze kterého bylo stisknuto tlačítko? Bohužel kvůli přehlednosti se nejedná o konzistentní pole s daty, ale o jednotlivé buňky rozházené po listě. Jsou však na každém listě na stejném místě. Takže je potřeba měnit opravdu pouze adresu listu.
Děkuji za pomoc a doufám že jsem to napsal pochopitelně, kdyžtak dovysvětlím.
Viktor
Re: EXCEL - Makro volající list s podmíněnou adresou
Napsal: 18 bře 2008 08:22
od mike007
Vítej na PC-Help
To by snad neměl být problém. Můžeš sem vložit ten dokument, abych viděl o co jde?
Re: EXCEL - Makro volající list s podmíněnou adresou
Napsal: 18 bře 2008 09:15
od Morpheus
Obsahuje to důvěrné informace, tak jsem je smazal a tak jsou pole prázdná, ale i tak si myslím uděláš jasnou představu.
Jde o to, aby po stisku tlačítka"Tisk předávacího protokolu" na listu třeba "list1" se přenesla potřebná data z "list1" na list "Předávací protokol" a tento se vytiskl. Pokud by to bylo tlačítko na "list2" aby se přenesla data z "list2" atd.
Díky,
Viktor
Re: EXCEL - Makro volající list s podmíněnou adresou
Napsal: 18 bře 2008 09:38
od Morpheus
Myslel lsem třeba nějak takhle:
Sub TiskPP()
'
' TiskPP Makro
' Makro zaznamenané 18.3.2008
'
'
Sheets("Předávací protokol").Select
Range("C3:D3").Select
ActiveCell.FormulaR1C1 = "=DATA!R[-1]C[-2]"
Range("G3:H3").Select
ActiveCell.FormulaR1C1 = "=DATA!R[-1]C[-5]"
Range("K3:L3").Select
ActiveCell.FormulaR1C1 = "=DATA!R[-1]C[-8]"
Range("C4:D4").Select
ActiveCell.FormulaR1C1 = "=DATA!R[-2]C[3]"
Range("K4:L4").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("C5:D5").Select
ActiveCell.FormulaR1C1 = "=DATA!R[-3]C[4]"
Range("G5:H5").Select
ActiveCell.FormulaR1C1 = "=DATA!R[-3]C[1]"
Range("C6:J6").Select
atd... atd...
Přičemž právě potřebuji nějak udělat aby ta adresa
R[x] byla proměnná podle toho z jakého listu je to tlačítko stisknuto.
Viktor
Re: EXCEL - Makro volající list s podmíněnou adresou
Napsal: 18 bře 2008 23:04
od mikel
Stačí když makro pro zkopírování dat napíšeš takto a přiřadíš ho ke všem tlačítkům pro tisk protokolu:
Kód: Vybrat vše
Sub Protokol()
Set Zdroj = ActiveSheet
Set Cíl = Worksheets(6)
Cíl.Range("C3") = Zdroj.Range("B1")
End Sub
Pokud na některém listu zmáčkneš tlačítko pro tisk protokolu, pak se tento aktivní list "označí" jako Zdroj a list "Předávací protokol" (list s indexem 6) se označí jako Cíl. Pak můžeš zkopírovat data ze zdrojového listu na předávací protokol přímo a nemusíš používat mezistupeň - list "DATA". Jeden příklad pro zkopírování SPZ jsem napsal, ať víš, jak na to.
Re: EXCEL - Makro volající list s podmíněnou adresou
Napsal: 19 bře 2008 00:20
od mike007
Dobrá práce Mikeli.
Já se k tomu dostal před hodinou a začal jsem vymýšlet složitější procedury.
Tohle je určitě jednodušší.
Re: EXCEL - Makro volající list s podmíněnou adresou
Napsal: 20 bře 2008 23:13
od mikel
To jsou ještě pozůstatky hodin Programování, kdy mi náš profesor hodně vtloukal do hlavy zásadu KISS

Re: EXCEL - Makro volající list s podmíněnou adresou
Napsal: 25 bře 2008 09:51
od Morpheus
Byl jsem teď mimo republiku, tak jsem se sem dostal až teď. Děkuji moc za radu, to je přesně to co jsem potřeboval, jen nevěděl jak by to mělo být přesně napsáno.
Ještě jednou díky.