[solved] nazwy arkuszy

Użytkowanie arkusza kalkulacyjnego
babiniec4
Posty: 53
Rejestracja: wt sie 03, 2010 10:20 pm

[solved] nazwy arkuszy

Post autor: babiniec4 »

Dzień dobry, szukam sposobu (nie makro) na wyświetlenie w komórce A1 nazwy arkusza, którego nr pojawia się w komórce B1.

B1=2, A1 zwraca nazwę "Arkusz3"
B1=0, A1 zwraca nazwę "Arkusz1"
B1=5, A1 zwraca nazwę "Arkusz6"

proszę o pomoc, pozdrawiam.
Ostatnio zmieniony pn lis 12, 2018 8:50 pm przez babiniec4, łącznie zmieniany 1 raz.
Apache OpenOffice 4.1.5 na Windows 10
Awatar użytkownika
Jermor
Posty: 2352
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: nazwy arkuszy

Post autor: Jermor »

Kod: Zaznacz cały

="Arkusz"&(B1+1)
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
babiniec4
Posty: 53
Rejestracja: wt sie 03, 2010 10:20 pm

Re: nazwy arkuszy

Post autor: babiniec4 »

Dziękuję za zainteresowanie... Arkusz 1,3,6 to nazwy przykładowe, mi chodzi o właściwe nazwy arkuszy.
Jeśli do skoroszytu dodam kolejny arkusz i nadam mu nazwę (i odwrotnie) to w komórce B1 nastąpi zmiana nr. Chciałbym żeby w komórce A1 pojawiła się konkretna nazwa arkusza odpowiednia dla liczby w komórce B1.
Pewnie to musi być jakaś napisana funkcja...
Apache OpenOffice 4.1.5 na Windows 10
babiniec4
Posty: 53
Rejestracja: wt sie 03, 2010 10:20 pm

Re: [solved] nazwy arkuszy

Post autor: babiniec4 »

odpowiedź znalazłem tutaj na forum...

function ark_nazwa(numer as integer)
on error goto koniec
ark_nazwa = thisComponent.Sheets.getByIndex(numer).name
koniec:
end function
Apache OpenOffice 4.1.5 na Windows 10
Awatar użytkownika
Jermor
Posty: 2352
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: [solved] nazwy arkuszy

Post autor: Jermor »

Ok. Jednak jest to makro. A twoim założeniem było to aby to nie było makro. Co do procedury-funkcji rozbudowałem ją o jeden wiersz, tak aby po podaniu niepoprawnego numeru arkusza pojawiała się odpowiedź "Nie ma takiego arkusza". Ta poprawiona funkcja jest w załączniku.
Rozwiązanie bez własnej funkcji jest nieco pokrętne, no i ma pewne niedogodności ale przedstawiam je także w załączniku.
Niedogodności to:
  • Konieczność utworzenia wykazu wszystkich arkuszy w skoroszycie.
    Tu użyłem funkcji KOMÓRKA, która zwraca bezwzględny adres pierwszej komórki w każdym arkuszu.
    Na podstawie wyniku tej komórki mogę otrzymać numer arkusza, funkcja ARKUSZ z wykorzystaniem funkcji ADR.POŚR.
    W trzeciej kolumnie obszaru funkcja MID (w LibreOffice FRAGMENT.TEKSU) wyekstrahuje nazwę arkusza.
  • Dla arkusza, w którym ten wykaz został utworzony funkcja KOMÓRKA zwraca tylko adres bezwzględny komórki, bez nazwy arkusza. Jeśli ten arkusz także ma podlegać procedurze, trzeba to dodatkowo rozwiązać.
  • Po zmianie nazwy arkusza funkcja KOMÓRKA podaje cały czas poprzednią nazwę, mimo, że argument tej funkcji wskazuje odwołanie już do nowej nazwy arkusza. Aby wymusić poprawne działanie należy zapisać skoroszyt a następnie załadować go ponownie.
  • Dodanie nowego arkusza wymaga ręcznego uzupełnienia wykazu arkuszy.
Załączniki
arkusze.ods
(11.86 KiB) Pobrany 226 razy
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ