Excel - odkaz na jiný sešit relativní

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

davidt
nováček
Příspěvky: 19
Registrován: březen 09
Pohlaví: Nespecifikováno
Stav:
Offline

Excel - odkaz na jiný sešit relativní

Příspěvekod davidt » 26 bře 2009 19:10

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

Reklama
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: květen 07
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod X » 26 bře 2009 20:59

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.

davidt
nováček
Příspěvky: 19
Registrován: březen 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod davidt » 26 bře 2009 21:34

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.

davidt
nováček
Příspěvky: 19
Registrován: březen 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod davidt » 26 bře 2009 22:03

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

Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: květen 07
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod X » 26 bře 2009 22:18

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í ...

davidt
nováček
Příspěvky: 19
Registrován: březen 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod davidt » 26 bře 2009 22:59

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.

Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: květen 07
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod X » 26 bře 2009 23:15

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.

davidt
nováček
Příspěvky: 19
Registrován: březen 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod davidt » 26 bře 2009 23:55

Toto píšu rovnou do buňky a ani s mezerou nic :-(

='I2 & F2 & "\[" & E4 & ".xls]ceny"'!B5

Uživatelský avatar
mike007
Master Level 7.5
Master Level 7.5
Příspěvky: 5860
Registrován: srpen 07
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod mike007 » 26 bře 2009 23:58

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)
Nejlepší hra je Excel!
Pravidla fóra PC-helpJak 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.

davidt
nováček
Příspěvky: 19
Registrován: březen 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod davidt » 27 bře 2009 00:12

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

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod navstevnik » 27 bře 2009 01:17

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

davidt
nováček
Příspěvky: 19
Registrován: březen 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - odkaz na jiný sešit relativní

Příspěvekod davidt » 27 bře 2009 10:03

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
    4759
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Q4OS či Zorin nebo jiný CZ Linux?
    od IMB » 26 lis 2024 17:17 » v LiNuX a ostatní alternativní OS
    4
    3178
    od faraon Zobrazit poslední příspěvek
    02 pro 2024 10:34
  • Windows 10 IoT Enterprise LTSC 2021 (podpora 2031) - v Českém jazyce? CZ lokace? Kde levně koupit licenci - link? Odkaz?
    od IMB » 30 črc 2024 13:14 » v Windows 11, 10, 8...
    3
    3870
    od petr22 Zobrazit poslední příspěvek
    30 črc 2024 21:38
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12171
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4564
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Seznam[Bot] a 4 hosti