< návrat zpět

MS Excel


Téma: Excel- Relativní odkaz do nadřazeného adresáře rss

Zaslal/a 6.8.2012 17:07

Dobrý den,
chci vás požádat o pomoc s použitím relativního odkazu v Excelu.

Mám 3 Excelové soubory které jsou mezi sebou provázány.
Dva soubory jsou ve stejném adresáři a jeden je v nadřazeném. Data čtu ze souboru v nadřazeném adresáři (..\).

Soubory přemístím z disku C: na D: .

Vzorce odkazující se na soubor ve stejném adresáři. ->Data se automaticky zkatualizují a vše je ok.
Vzorce odkazující na soubor v nadřazeném adresáři. -> Data se nezaktualizují odkaz je formou absolutní cesty na dysk (C:).

Tento problém potřebuji řešit pro velký počet souborů, a častou změnu umístění.
Tzn. otevřít každý soubor zvlášť a změnit cestu odkazu je nevyhovující.

Lze zadat relativní odkaz formou jako v DOSu (..\), nebo je nějaké jiné řešení?

Doufám že je popis problému dostatečný. Řešení je určitě jednoduché. Já jsem na něj bohužel krátký.
Děkuji za pomoc

Zaslat odpověď >

#009188
avatar
Jedná se skutečně o vzorec tzn. =Hypertextový.odkaz(xx,xx), nebo se jedná o odkaz na buňce?
Co mi dělalo problémy u odkazů bylo že se při uložení z relativních vždy staly absolutní.
Dočasně pomohlo Nástroje -> Možnosti -> Obecné -> Webové možnosti -> Obecné -> zrušit zaškrtnutí "Aktualizovat odkazy při uložení". Problém nastal u síťových souborů používaných více uživateli - každému to nenastavím.
Otázka je co je vlastně tvůj případ - chtělo by to ukázku.

M@citovat
#009192
avatar
Jojo je to tak, odkazy na zavřené sešity musí být vypsány s celou adresou, žádné (..\). Pokud jsou ve stejné složce umí si to EXCEL upravit sám. Pokud jsou však v jiné je notno tento Link změnit buď manuálně v Úpravy-Propojení, nebo si napsat Makro, které tuto úpravu Linku provede ve všech sešitech.citovat
#009194
avatar
Re: Jeza
Jedná se o odkaz v buňce. Nic složitého, snad ani neni potřeba posilat. V buňce souboru se odkazuji na jinou buňku z nadřazeného souboru.
(='[nadřazený soubor.xls]nadřazený soubor'!$B$5)
A já potřebuji aby fungovalo odkázat se o adresář víše.
něco jako:
(='[../nadřazený soubor.xls]nadřazený soubor'!$B$5)

Zkusil jsem to co jsi radil. Excel ztratí cestu k odkazovanému souboru.
Děkuju ale takhle ne.

Re:kp57
Pochopil jsi mě, super :-) ale ja nepochopil Tebe.
Můžeš prosím ještě jednou a postupně?
a) Link změnit manuálně v Úpravy- Propojení
Tzn. u každého souboru při přemístění musim odklikat novou cestu na odkazovaný soubor.
To je u počtu souborů a úprav děs na dlouhé večery.

b)napsat Makro
V VBA neumím, zkoušel jsem prolézt net, a vyzkoušel nějaké zdrojáky a pár prográmků které nahrazují text, ale nefunguje mě to. (textpipepro2) je na mě moc složitý

Víš prosím o nějakém hotovém makru,nebo jednoduchém prográmku?

-proleze zadaný adresář a vypíše excelové soubory
-nahradí text (postačí jen změna názvu dysku)

='C:\Vzorový projekt\[nadřazený soubor.xls]nadřazený soubor'!$B$3

='D:\Vzorový projekt\[nadřazený soubor.xls]nadřazený soubor'!$B$3citovat
#009196
avatar
Ještě mě napadlo použití nepřímého odkazu, ale ten se sám neaktualizuje, pouze když se daný zdrojový soubor otevře.
Místo:
='C:\Vzorový projekt\[nadřazený soubor.xls]nadřazený soubor'!$B$3
použít:
=NEPŘÍMÝ.ODKAZ("'"& cesta() & "\[Zdrnadřazený soubor.xls]nadřazený soubor'!$B$3
")
kdy proměnná Cesta() je tvořena vlastní funkcí pomocí makra ... do modulu vložit:

Public Function CESTA()
Dim tmp As String
tmp = ThisWorkbook.Path
For i = Len(tmp) To 1 Step -1
If Left(Right(tmp, Len(tmp) - i), 1) = "\" Then
CESTA = Left(tmp, i)
Exit For
End If
Next
End Function


zkoušel jsem vestavěnou funkci =O.Prostředí("directory"), ale tam jsem vůbec neuspěl a tak jsem si napsal funkci vlastní.
Ale ani tento způsob mi nepřijde zrovna ideální když pro aktualizaci vyžaduje otevření zdroje.

M@citovat
#009198
avatar
Něco jsem slepil. Někde to rozbal a zkus. Otevři sešit UpravPropojeni.xls. Odzkoušeno v EXCEL/2003 tzn *.xls.
V novějších verzích EXCELU (xlsx,xlsm) nevím jak bude fungovat, nutno vyzkoušet.
Příloha: rar9198_testpropojeni.rar (37kB, staženo 45x)
citovat
#009201
avatar
Re: Jeza
To co jsi poslal mě funguje ale neřeší to problém.
Děkuju

Re:kp57
To je dobré, zatim jsem to zkusil jen na Office 2007
Run-time error 445 Object doesnt support this action
Hlasí to problém na řádku:
Set Fs = Application.FileSearch

Zkusím nainstalovat 2003 jestli někde nedělám chybu.
Zatím Děkujicitovat
#009210
avatar
Ještě chvilku s tou instalací 2003 počkej.
To bys musel na každém PC, kde to budeš chtít spustit.
To není řešení. Jseš už druhý, kterému na 2007 nejde nastavit FileSearch.
Pokusím se to zjistit, pokud to do té doby nevyřeší někdo z místních guru.citovat
#009215
avatar
Nechal jsem si poradit, tak to zkus.
Příloha: rar9215_testpropojeni2007.rar (37kB, staženo 48x)
citovat
#009216
avatar
Teď je to ono.
Příloha: rar9216_testpropojeni2007-p.rar (34kB, staženo 159x)
citovat
#009396
avatar
Dobrý den,

omlouvám se za odmlku.
kp57
Moc DĚKUJI za pomoc. Funguje to

Jen pro zajímavost ještě odkaz na podobnou tématiku.
http://excelplus.net/news.php?readmore=146citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje