kopiowanie arkuszy pomiędzy skoroszytami

Witam słonecznie:)
Mam mały problem.
Przy kopiowaniu arkuszy pomiędzy różnymi skoroszytami do formuły w komórkach poszczególnych arkuszy dodaje się "łącznik" do pliku źródłowego. Mi zależy na tym żeby tego łącznika nie było a formuła odnosiła się do arkusza docelowego. wszystkie wypróbowane przeze mnie sposoby są zbyt czasochłonne i być może mógłby mi ktoś wskazać metodę na poradzenie sobie z tym fantem.
Mam nadzieję że wyjaśniłam problem w miarę przystępnie:)
Będę bardzo wdzięczna za wszelką pomoc.
Donia

Odpowiedzi: 1

Witaj Doniu!

Czasem szukamy rozwiązania tam, gdzie nie trzeba.
Dlatego najlepiej byłoby, abyś dokładnie określiła, co przenosisz, o jakie dane chodzi itd.

Po przećwiczeniu w Excelu stwierdzam, że faktycznie tak jest, jak napisałaś, ale wydaje mi się, że rozwiązaniem byłoby stworzenie szablonu arkusza/arkuszy, które zawierałyby odpowiednie formuły, a więc nie byłoby problemu jw.
Ale za mało mamy szczegółów, aby stwierdzić, czy takie rozwiązanie będzie właściwe.

Bo jeśli dobrze rozumiem: masz skoroszyt ABC.xls i jakieś formuły dajmy na to w Arkusz2, powiązane z danymi w Arkusz1 (np. jakieś stawki). I przy kopiowaniu Arkusz2 do innego skoroszytu, np. XYZ.xls, chciałabyś, aby dane do tych formuł w skopiowanym Arkusz2 pobierane były z Arkusza1, ale ze skoroszytu XYZ.xls - czy tak?

Jeśli chodzi o taką sytuację, jak powyżej, to możnaby wykorzystać częściowo odpowiednie odwołanie w nadawaniu nazwy obszarowi albo składać adres komórki znajdującej się w tych formułach - ale to w przypadku, gdy dane do formuł są pobierane z arkusza o zawsze tej samej nazwie.
Mam nadzieję, że dostatecznie zostało to przeze mnie zagmatwane Smile [:)] - sorry, tak mi wyszło, ale jeśli opiszesz dokładnie o co chodzi, to podam Ci konkretną formułę.

Koziorozec
Dodano
12.05.2006 01:07:05
  • doniam 12.05.2006 01:56:17

    Witaj Koziorożcu:) <br />Dziękuję bardzo za zainteresowanie moim problemem... <br />Jestem pełna podziwu, że mimo moich zakręconych wywod&#243;w zrozumiałeś sedno problemu. Chodzi dokładnie o sytuację kt&#243;rą zobrazowałeś na przykładzie skoroszyt&#243;w ABC.xls oraz XYZ.xls. Kontynuując wyw&#243;d... <br />W skoroszycie (nazwijmy go źr&#243;dłowym) ABC.xls mam łącznie 5 arkuszy: <br />1. Nazwa:ABC to stopy zwrot&#243;w z akcji ABC w r&#243;żnych horyzontach czasowych(łącznie kilkanaście kolumn) <br />2. Nazwa:midwig - taki sam arkusz dla każdego skoroszytu <br />3. Nazwa: bony - taki sam dla każdego skoroszytu <br />4 i 5: capm i capm2 to arkusze w kt&#243;rych wyliczane są 2 modele i formuły kt&#243;re są tutaj uzyte będą odnosić się do pozostałych skoroszyt&#243;w-chodzi o to żeby takie modele powstały dla każdej z akcji(a jest ich ok.100 a więc ok. 100 skoroszyt&#243;w) <br />Dlatego sam rozumiesz, ze zależy mi bardzo na uproszczeniu sobie tej monotonnej pracy polegającej na wklejaniem formuł a następnie czasochłonnym dostosowywaniu ich do każdego skoroszytu. <br />Podsumowując, wszystkie arkusze, z wyjątkiem pierwszego mają tą samą nazwę <br />Mam nadzieję, ze nie zagmatwałam bardziej niż zrobiłam to z wersją pierwotną;) <br />Pozdrawiam! <br />Donia

  • doniam 12.05.2006 02:08:32

    po przemyśleniach... <br />Nie byłoby problemu żeby wszystkie arkusze dla każdego skoroszytu miały tą samą nazwę, ponieważ i tak bedę je odr&#243;żniała po nazwie skoroszytu(kt&#243;ra de facto będzie informować o nazwie akcji) <br />Jeżeli jesteś w stanie przy takich warunkach rozwiązać ten problem to jestem otwarta na sugestie:) <br />Z g&#243;ry wielkie dzięki:) <br />Donia

  • ohcyR 12.05.2006 04:15:43

    <P>Witam</P> <P><EM>Bo jeśli dobrze rozumiem: masz skoroszyt ABC.xls i jakieś formuły dajmy na to w Arkusz2, powiązane z danymi w Arkusz1 (np. jakieś stawki). I przy kopiowaniu Arkusz2 do innego skoroszytu, np. XYZ.xls, chciałabyś, aby dane do tych formuł w skopiowanym Arkusz2 pobierane były z Arkusza1, ale ze skoroszytu XYZ.xls - czy tak?</EM></P> <P>Może po przekopiowaniu wystarczy zmienić źródło łącza (z menu: edycja / łącza) z ABC.xls na XYZ.xls ?<BR></P>

  • Koziorozec 15.05.2006 05:57:50

    <P>Moje rozwiązanie jest trochę inne:</P> <P>W arkuszu, np. ABC.xls, w komórkach, w których mają być formuły korzystające w obliczeniach, np. z komórki B2, gdzie podany jest aktualny kurs USD,&nbsp;z konkretnego arkusza o nazwie, np. Kursy, wpisuję formułę złozoną z odpowiednich funkcji - która spowoduje, ze będzie to kurs pobierany z komórki B2, zawsze z&nbsp;arkusza Stawki, zawsze z <STRONG>biezącego</STRONG>&nbsp;skoroszytu (wszystko powinno być wpisane w jednym wierszu):</P> <P><FONT face="Courier New" color=#000000 size=2>=ADR.POŚR("'" &amp;&nbsp;</FONT><FONT face="Courier New" color=#000000 size=2><FONT color=#008000><STRONG>LEWY(</STRONG></FONT><FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT><FONT color=#008000>;</FONT><FONT color=#800080>ZNAJDŹ("]";<FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT>;1)</FONT><FONT color=#008000><STRONG>)</STRONG></FONT> &amp;&nbsp;"Stawki'!B2"</FONT><FONT face="Courier New" color=#000000 size=2>)</FONT></P> <P><U>Wytłumaczenie:</U></P> <P>Chcę uzyskać odniesienie do komórki B2, znajdującej się zawsze w arkuszu Stawki, ale w <STRONG>biezącym</STRONG> skoroszycie. Uzyje zlozenia: odczytam nazwę biezącego skoroszytu, dodam do tego nazwę "Stawki" oraz odniesienie do komórki B2 i to wszystko podam, jako adres, z którego ma być pobierana wartość - wykorzystam funkcję ADR.POŚR:</P> <P><FONT face="Courier New" color=#000000 size=2>=ADR.POŚR(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"'" &amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT face="Courier New" color=#000000 size=2><FONT color=#008000><STRONG>LEWY(</STRONG></FONT><FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT><FONT color=#008000>;</FONT><FONT color=#800080>ZNAJDŹ("]";<FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT>;1)</FONT><FONT color=#008000><STRONG>)</STRONG></FONT> &amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Stawki'!B2"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT face="Courier New" color=#000000 size=2>)</FONT></P><FONT face="Courier New" size=2> <P><BR></FONT><U>Po kolei:<BR></U><BR><FONT face="Courier New" size=2><FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT> <FONT face="Times New Roman" size=3>-&nbsp;wpisane dokładnie tak samo, bez podmieniania wyrazenia "nazwa_pliku" na cokolwiek innego - da w wyniku pełną ściezkę do nazwy pliku oraz nazwę biezącego arkusza.<BR>Wynik tej funkcji moze być np. taki: <FONT face="Courier New" size=2>c:\Moje dokumenty\Excelowe\[ABC.xls]Obliczenia<BR></FONT>&nbsp;&nbsp;&nbsp;<BR></FONT></FONT>Trzeba teraz podmienić nazwę biezącego arkusza ("Obliczenia")&nbsp;i wpisać na sztywno nazwę "Stawki". Znajdę (funkcja Znajdź), w którym miejscu jest nawias ] - a więc koniec adresu skoroszytu:</P> <P><FONT face="Courier New" size=2>&nbsp;&nbsp;&nbsp;<FONT color=#800080>ZNAJDŹ("]";<FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT>;1)</FONT></FONT></P> <P>Jak juz wiem, na której pozycji jest ten nawias, to chcę otrzymać adres tylko do niego - odczytam wszystkie litery, licząc od lewej do tego nawiasu:</P> <P><FONT face="Courier New" size=2>&nbsp;&nbsp;&nbsp;<FONT color=#008000>LEWY(<FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT>;ZNAJDŹ("]";<FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT>;1))</FONT></FONT></P> <P>Czyli dostanę w wyniku: <FONT face="Courier New" size=2>c:\Moje dokumenty\Excelowe\[ABC.xls]</FONT></P> <P>No to teraz złączę teksty:</P> <P><FONT face="Courier New" size=2>"'" &amp; LEWY(KOMÓRKA("nazwa_pliku");ZNAJDŹ("]";KOMÓRKA("nazwa_pliku");1)) &amp; "Stawki'!B2"</FONT></P> <P>i otrzymam:</P> <P><FONT face="Courier New" size=2>'c:\Moje dokumenty\Excelowe\[ABC.xls]Stawki'!B2</FONT></P> <P>Znaki pojedynczego apostrofu i wykrzyknika są potrzebne do skonstruowania prawidłowego odniesienia.</P> <P>Uzyskany adres w postaci tekstu umieszczam w funkcji ADR.POŚR i mam w wyniku odwołanie do komórki B2, zawsze z arkusza Stawki i zawsze z BIEZĄCEGO pliku.</P> <P>Wiem, wiem... strasznie to skomplikowana formuła ;)</P> <P>Jeśli ktoś chciałby z niej skorzystać, to wystarczy ją przekopiować, a zmienić tylko i <STRONG>wyłącznie</STRONG> tą część, gdzie podana jest <U>nazwa arkusza i adres komórki</U>, a więc tak, gdzie:</P> <P>"Stawki'!B2" - podać, np. "Kursy'!G10" albo np. "Wskaźniki'!$F$4", zwracając uwagę, aby pozostawić ten pojedynczy apostrof i wykrzyknik.</P> <P>Teraz mozemy uzyć tego odniesienia do komórki B2 w obliczeniach, np.:</P> <P><FONT face="Courier New"><FONT size=2>=A1 * ADR.POŚR("'" &amp;&nbsp;<FONT face="Courier New" color=#000000><FONT color=#008000><STRONG>LEWY(</STRONG></FONT><FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT><FONT color=#008000>;</FONT><FONT color=#800080>ZNAJDŹ("]";<FONT color=#ff1493>KOMÓRKA("nazwa_pliku")</FONT>;1)</FONT><FONT color=#008000><STRONG>)</STRONG></FONT> &amp;&nbsp;"Stawki'!B2"</FONT><FONT face="Courier New" color=#000000>)</FONT></FONT></FONT></P> <P>Mozna by było napisać prosą funkcję w VBA, aby łatwiej było to stosować, tylko trzeba by było dołączyć to, np. do personal.xls, a mogłyby to powodować problem przy przenoszeniu plików na inny komputer.</P> <P><U>Uwagi:</U></P> <OL> <LI>Jeśli arkusz, który zawiera takie formuły skopiujemy, np. do nowego skoroszytu, którego jeszcze nie zapiszemy, to zamiast wyniku moze pojawić się błąd, ale wystarczy go zapisać i powinno być ok. <LI>Jeśli w skoroszycie, do którego skopiujemy arkusz Obliczenia nie ma arkusza Stawki, to formuła zwróci błąd. <LI>Jeśli w komórce, do której się odnosimy poprzez tą naszą formułę nie ma wartości albo uzyjemy jej w obliczeniach w momencie, gdy zamiast liczby jest tam tekst, to równiez otrzymamy błąd.</LI></OL> <P>Mam nadzieję, ze podczas tłumaczenia nie zakradły się tu błędy ;)</P> <P>Ale tak w ogóle, to rozwiązanie <STRONG>ohcyRa</STRONG> wydaje mi się najlepsze! :)</P>

  • doniam 12.05.2006 10:25:42

    Udało się:) <br />Pr&#243;bowałam wcześniej w taki spos&#243;b to rozwiązać ale było to niemożliwe...dopiero jak zmieniłam arkusze w ten spos&#243;b, ze w każdym skoroszycie maja taką sama nazwe to zamieniło mi łącza <br />Śliczne dzieki:D <br />Donia

doniam
Dodano:
11.05.2006 22:09:52
Komentarzy:
1
Strona 1 / 1