Zdravím všechny.
Může mi někdo poradit, jak vytvořit relativní odkaz na jiný sešit. Jde mi o to, že chci vytvořit složku, kde bude hlavní soubor excel a dále dvě další složky s dalšími sešity (v jedné seznamy položek a ve druhé údaje po týdnech k daným položkám, které budu v průběhu roku doplňovat). Potřebuji, aby bylo možné celou hlavní složku kamkoli zkopírovat. Našel jsem jen absolutní zadání odkazu na jiný sešit (např. ='C:\prodeje\týdně\[týden1.xls]ceny'!A5), ale když celou složku prodeje přenesu jinam, odkazy budou neplatné.
Poradí někdo? Případně nějaké makro, které by poznalo umístění hlavního souboru xls?
Díky
Excel - odkaz na jiný sešit relativní
Re: Excel - odkaz na jiný sešit relativní
Pokud budou ty další sešity otevřené (jako že nejspíš nejprve ne, půjde o propojení), tak v každém sešitu je možná funkce, která vrátí jeho umístění. Musíš si rozmyslet, kde ty sešity budou a nepřemisťovat je. Nejefektivnější by bylo, mít vše v jednom sešitu na jiných stranách. Nejspíš pomocí API by šlo vyhledávat, kde v počítači sešity jsou. Dovedeš si ale uvědomit, kolik to taky může zabrat času, při procházení desetitisíců, statisíců složek? Jistě nebudeš ochotný čekat desítky vteřin, či několik minut ...
Ten první (hlavní) soubor (a kterýkoliv ze sebe sama) zjistíš takto:
O.PROSTŘEDÍ(typ)
typ:
"directory" Cesta aktuálního adresáře nebo složky.
"memavail" Množství použitelné paměti, v bytech.
"memused" Množství paměti použitelné pro data.
"numfile" Počet aktivních listů v otevřených sešitech.
"origin" Absolutní adresa typu A1, ve tvaru textu, s předponou "$A:" pro Lotus 1-2-3 verze 3.x kompatibilní. Vrátí adresu buňky v levém horním rohu právě viditelné části okna.
"osversion" Verze operačního systému, ve tvaru textu.
"recalc" Nastavený režim přepočítávání, "Automatické" nebo "Ruční".
"release" Verze aplikace Microsoft Excel, ve tvaru textu.
"system" Název prostředí:
Macintosh = "mac"
Windows = "pcdos"
"totmem" Celková použitelná paměť, včetně paměti už používané, v bytech.
Pokud budou další sešity vždy ve stejné složce jako první, máš to vyřešeno.
Ten první (hlavní) soubor (a kterýkoliv ze sebe sama) zjistíš takto:
O.PROSTŘEDÍ(typ)
typ:
"directory" Cesta aktuálního adresáře nebo složky.
"memavail" Množství použitelné paměti, v bytech.
"memused" Množství paměti použitelné pro data.
"numfile" Počet aktivních listů v otevřených sešitech.
"origin" Absolutní adresa typu A1, ve tvaru textu, s předponou "$A:" pro Lotus 1-2-3 verze 3.x kompatibilní. Vrátí adresu buňky v levém horním rohu právě viditelné části okna.
"osversion" Verze operačního systému, ve tvaru textu.
"recalc" Nastavený režim přepočítávání, "Automatické" nebo "Ruční".
"release" Verze aplikace Microsoft Excel, ve tvaru textu.
"system" Název prostředí:
Macintosh = "mac"
Windows = "pcdos"
"totmem" Celková použitelná paměť, včetně paměti už používané, v bytech.
Pokud budou další sešity vždy ve stejné složce jako první, máš to vyřešeno.
Re: Excel - odkaz na jiný sešit relativní
Ostatní sešity otevřené nebudou, dokonce část z nich ani nebude existovat (budou se doplňovat každý týden další). Navíc to celé musí být připravené pro jednoduché použití - stačí nakopírovat nový sešit s názvem "týden15.xls" do správné složky a v hlavním sešitě automaticky přibude nový sloupec s požadovanými info.
Budou umístěné ve stejné složce vzhledem hlavnímu sešitu (resp. o jednu úroveň dál), ale potřebuju, aby celá sestava fungovala při přesunutí celé složky (včetně hlavního sešitu) jinam - tedy relativní pozice sešitů navzájem zůstane stejná, ale absolutní se změní (např. z disku C na disk D). Do buňky jako odkaz jde napsat pouze absolutní adresa.
Funkci O.PROSTŘEDÍ(typ) vyzkouším a napíšu, jestli to je ono.
Budou umístěné ve stejné složce vzhledem hlavnímu sešitu (resp. o jednu úroveň dál), ale potřebuju, aby celá sestava fungovala při přesunutí celé složky (včetně hlavního sešitu) jinam - tedy relativní pozice sešitů navzájem zůstane stejná, ale absolutní se změní (např. z disku C na disk D). Do buňky jako odkaz jde napsat pouze absolutní adresa.
Funkci O.PROSTŘEDÍ(typ) vyzkouším a napíšu, jestli to je ono.
Re: Excel - odkaz na jiný sešit relativní
Nevím proč, ale funkce =O.PROSTŘEDÍ("directory") mi dává odkaz E:\ ať sešit umístim kamkoli (E:\ mám v XP Dokumenty, jestli to s tím může souviset. Že bych měl někde něco špatně nastavené? Jinak by to byla funkce na ...
PS: Když dám vlastnosti dokumentu, tak mi to napíše správnou cestu k souboru
PPS: Už jsem to našel: Možnosti aplikace Excel -> Uložit -> Výchozí umístění souborů - nechal jsem tam prázdné místo a teď je to ok
PS: Když dám vlastnosti dokumentu, tak mi to napíše správnou cestu k souboru
PPS: Už jsem to našel: Možnosti aplikace Excel -> Uložit -> Výchozí umístění souborů - nechal jsem tam prázdné místo a teď je to ok
Re: Excel - odkaz na jiný sešit relativní
Teď jsem to zkoušel. Pokuď otevřeš soubor přímo na ikonu kde je dvojklikem, ukáže asi pouze nějaké přednastavené složky. Když spustíš nejprve Excel a v něm dáš otevřít sešit, kde je tato funkce, sešit se načte a ukazuje správně. Možná to je v nastavení ...
Re: Excel - odkaz na jiný sešit relativní
Ještě jeden amatérský dotaz:
mám v buňkách:
cesta k souboru: I2 = O.PROSTŘEDÍ("directory") = C:\složka\
název podsložky: F2 = 2008
název souboru E4 = 2008-1
a do určité buňky (B5) chci přenést
data z buňky B5 na listu ceny v sešitu umístěném C:\složka\2008\2008-1.xls
tento vzorec ni nefunguje:
='I2&F2&"\["&E4&".xls]ceny"'!B5
V jakém formátu, resp. jakou funkci musím použít, abych mohl otevřít soubor, kde cesta je složená z údajů z několika buněk?
Díky moc za pomoc.
mám v buňkách:
cesta k souboru: I2 = O.PROSTŘEDÍ("directory") = C:\složka\
název podsložky: F2 = 2008
název souboru E4 = 2008-1
a do určité buňky (B5) chci přenést
data z buňky B5 na listu ceny v sešitu umístěném C:\složka\2008\2008-1.xls
tento vzorec ni nefunguje:
='I2&F2&"\["&E4&".xls]ceny"'!B5
V jakém formátu, resp. jakou funkci musím použít, abych mohl otevřít soubor, kde cesta je složená z údajů z několika buněk?
Díky moc za pomoc.
Re: Excel - odkaz na jiný sešit relativní
Ve VBA se nesmí & psát bez mezery, jinak se to bere jako typ proměnné:
% = Integer
& = Long
! = Single
# = Double
@ = Currency
$ = String
Zkus poopravit a jinak ještě dopilujem.
% = Integer
& = Long
! = Single
# = Double
@ = Currency
$ = String
Zkus poopravit a jinak ještě dopilujem.
Re: Excel - odkaz na jiný sešit relativní
Toto píšu rovnou do buňky a ani s mezerou nic 
='I2 & F2 & "\[" & E4 & ".xls]ceny"'!B5

='I2 & F2 & "\[" & E4 & ".xls]ceny"'!B5
- mike007
- Master Level 7.5
- Příspěvky: 5860
- Registrován: srpen 07
- Bydliště: Pardubice
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Excel - odkaz na jiný sešit relativní
Co raději použít fci NEPŘÍMÝ.ODKAZ (angl. INDIRECT) ??
Více zde: http://www.contextures.com/xlFunctions05.html (Create a Reference To a Different Workbook)
Více zde: http://www.contextures.com/xlFunctions05.html (Create a Reference To a Different Workbook)
Nejlepší hra je Excel!
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
Re: Excel - odkaz na jiný sešit relativní
To jsem také zkoušel, ale píše mi to #REF
=NEPŘÍMÝ.ODKAZ("'" & I2 & F2 & "\[" & E4 & ".xls]ceny'!B5")
Dokonce jsem si i do jedné buňky napsal vzorec (který zadaný ručně funguje) jako text a přes nepřímý.odkaz nic
EDIT: nepřímý.odkaz jde použít pouze na otevřené sešity, to u mě nepůjde
=NEPŘÍMÝ.ODKAZ("'" & I2 & F2 & "\[" & E4 & ".xls]ceny'!B5")
Dokonce jsem si i do jedné buňky napsal vzorec (který zadaný ručně funguje) jako text a přes nepřímý.odkaz nic
EDIT: nepřímý.odkaz jde použít pouze na otevřené sešity, to u mě nepůjde
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Excel - odkaz na jiný sešit relativní
Neuvadis nic blizsiho, jak bude s daty manipulovano. Vzhledem k tomu, ze nejspis budou prenasena data do hlavniho souboru, pak bude vhodne v tomto souboru pro prenos dat pouzit proceduru VBA, ktera bude resit relativni umisteni hlavniho souboru a podslozky ("...vytvořit složku, kde bude hlavní soubor excel a dále dvě další složky s dalšími sešity... "), princip:
Kód: Vybrat vše
Option Explicit
Sub Cesta()
Dim Cesta As String, Soubor As String, FF As Boolean
Dim Source As Range, Target As Range
' cesta k ridicimu souboru
Cesta = ActiveWorkbook.Path
' cesta vcetne podslozky (zde Pom) k souborum *.xls
Cesta = Cesta & "\Pom\*.xls"
FF = False
Do
If Not FF Then
Soubor = Dir(Cesta)
FF = True
Else
Soubor = Dir
End If
If Soubor = vbNullString Then Exit Do
' zde je vykonna cast smycky, otevreni zdrojoveho sesitu, nacteni zdrojovych dat - Source,
' preneseni do cile - Target,...
Loop
End Sub
Re: Excel - odkaz na jiný sešit relativní
S VB umím jenom trochu. Spíš mě napadlo vytvořit makro, které natvrdo přepíše obsah buněk (budu tam mít až 104 navazujících sešitů, takže otvírat a zavírat každý zvlášť by asi bylo zdlouhavé). Když je v buňce zadaná cesta přímo (ne vzorcem), tak není potřeba další sešity otevírat.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw) - 2
- 4762
-
od Riviera kid
Zobrazit poslední příspěvek
02 zář 2024 16:21
-
-
- 4
- 3178
-
od faraon
Zobrazit poslední příspěvek
02 pro 2024 10:34
-
- 3
- 3870
-
od petr22
Zobrazit poslední příspěvek
30 črc 2024 21:38
-
- 2
- 12173
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 4574
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů