Stránka 1 z 1
Odkaz na buňku
Napsal: 08 čer 2007 08:14
od Axamith
Zdravím moudré hlavy. Potřeboval bych poradit s makrem, které by vkládalo odkazy na konkrétní buňky.
V sešitu mám list "A" a "B". Na listu "B" mám vzorcem nasměrování na buňku v listu "A"
Z této cílové buňky bych potřeboval udělat odkaz nasměrovaný na zdrojovou buňku. To lze udělat velice jednoduše, ale vzhledem k množství odkazů, které potřebuji vytvořit by to ručně bylo neskutečně zdlouhavé.
Mám představu,že si najedu na cílovou buňku, spustím makro a to by vytvořilo odkaz s nastavením cesty na zdrojou buňku. Přešel bych na jinou buňku, spustil makro . . .
Způsob nastavení cesty je patrný z obrázku. Děkuji za všechny nápady.

Napsal: 08 čer 2007 10:02
od Jan Pašek
Zkoušel si to se spuštěným záznamem makra s nastavením relativně?
Napsal: 08 čer 2007 10:50
od Axamith
Klasický záznam marka jsem zkoušel. To tam vkládá "natvrdo" zaznamenanou buňku. Nevím, jak myslíš nastavení reletivně.

Napsal: 08 čer 2007 11:51
od Jan Pašek
Nastavení relativně způsobí vždy stejnou operaci ale je vztažená relativně k výchozí buňce kde momentálně stojí kurzor.
Příklad: zapnu záznam makra společně s relativním odkazem do buňky a1 zapíšu 5 posunu o jeden dolů na buňku a2 a vypnu záznam makra pokud nyní makro spustím zapíše se 5 do buňky a2 a kursor se posune na buňku a3 při dalším spuštění zapíšu do a3 a posunu na a4 .. a takhle pořád dokola.
Tady už sem to jednou řešil:
http://www.pc-help.cz/viewtopic.php?p=60365#60365
Napsal: 08 čer 2007 12:26
od Axamith
Tak bohužel, to není ta správná cesta. Pořád to cpe "natvrdo"
Zkusil jsem udělat dvě makra : absolutně a relativně
Kód: Vybrat vše
Sub absolutne()
'
' absolutne Makro
' Makro zaznamenané 8.6.2007, agie
'
'
Range("A1").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"List1!A1"
End Sub
Sub relativne()
'
' relativne Makro
' Makro zaznamenané 8.6.2007, agie
'
'
ActiveCell.Offset(-1, 0).Range("A1").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"List1!A2"
End Sub
Porád se to chová v podstatě stejně.
Napsal: 08 čer 2007 13:19
od Jan Pašek
Nestydím se přiznat že dál nevím.
Napsal: 08 čer 2007 14:07
od Axamith
V Excelu někde bude odkaz vnitřně zapsaný. Musí mít svoji adresu. Podle mě to v makru řeší tento příkaz :
Kód: Vybrat vše
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Kdyby se do něj nastavila "nějak" obecná adresa, tak by to mělo šlapat. ( Hezká teorie, že )
Napsal: 09 čer 2007 12:24
od mikel
Zkus to udělat takhle:
Kód: Vybrat vše
Sub Odkaz()
Dim Bunka As Range
Set Bunka = Application.InputBox(Prompt:="Zadej adresu odkazu", Title:="Odkaz", Type:=8)
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Bunka.Address(External:=True)
End Sub
Napsal: 11 čer 2007 15:15
od Axamith
Není to úplně ideální řešení, ale je to řešení. Zadávání cesty je velice jednoduché, stačí pouze kliknout na cílovou buňku. Neříkám, že by se mi nelíbilo, kdyby si makro "sáhlo" do vzorce buňky a cestu si dosadilo automaticky, ale i tímto způsobem lze celou záležitost řešit. V hotovém sešitu bude zhruba 4 - 5 tisíc odkazů, ale když to budu dělat postupně, tak se z toho nezblázním.
Napsal: 11 čer 2007 21:16
od mikel
To bude tím, že jsem z tvého zadání nepochopil souvislost mezi cílovou buňkou a odkazovanou buňkou. Jestli např. výsledek v B10 bude odkazovat vždy jen na B10 na předešlém listě, tak to půjde udělat automaticky. Předělám ti to na tento způsob a za předpokladu, že první list se jmenuje opravdu A.
Napsal: 11 čer 2007 21:56
od mikel
Tak tady to máš. Jak jednoduché, milý Watsone.
Kód: Vybrat vše
Sub Odkaz()
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="A!" & ActiveCell.Address
End Sub
Jestli ten odkaz dáváš všude, kde máš nějaký obsah v buňce, tak to jde udělat úplně automaticky - sukumprásk najednou.
Napsal: 12 čer 2007 17:52
od Axamith
Mikel : testnu to a napíšu. Od tebe jsou vychytávky vždycky vychytaný,