Strona 1 z 1

zgubiona własna funkcja

: pn lip 21, 2025 2:12 pm
autor: AdamTko
Dzień dobry,
stworzyłem jakieś 3 lata temu rozbudowany i zaawansowany (jak na mnie) arkusz, w którym użyłem stworzonej przez siebie funkcji. Matematycznie dość banalna, ale też mocno rozbudowana. Sama funkcja miała dobre kilkadziesiąt linijek tekstu.

Mam teraz potrzebę skorzystania z tego arkusza, na innym komputerze, pobrałem więc plik z backupu, otworzyłem i działa w Libre Calc (w Excelu ni hu hu) ale... nie mam możliwości (lub nie umiem) odczytać kodu w/w funkcji a już trym bardziej go edytować.

Czy jest jakieś rozwiązanie lub podpowiedź, co mogę zrobić?

Re: zgubiona własna funkcja

: pn lip 21, 2025 6:25 pm
autor: Jan_J
A co próbowałeś zrobić, by odczytać kod?
Standardowo z menu Narzędzia → Makra → Zarządzaj → ...

Re: zgubiona własna funkcja

: pn lip 21, 2025 9:23 pm
autor: AdamTko
Właśnie to próbowałem: menu Narzędzia → Makra → Zarządzaj →
i tam rozwijałem i klikałem wszelkie możliwe możliwe pozycje i mojej funkcji nie znalazłem.
makro.png
makro.png (25.62 KiB) Przejrzano 544 razy

Re: zgubiona własna funkcja

: pn lip 21, 2025 9:36 pm
autor: AdamTko
Jest gorzej niż myślałem. Napisałem wcześniej, że arkusz i funkcja działa, ale jednak nie. Próba zmiany zawartości jakiejkolwiek komórki, do której odwołuje się funkcja wywala #NAZWA? tam, gdzie wcześniej był wynik

Re: zgubiona własna funkcja

: pn lip 21, 2025 10:36 pm
autor: Jermor
Prawdopodobnie funkcję umieściłeś w kontenerze "Moje okna dialogowe i makra", a ten kontener zapisywany jest z parametrami użytkownika. Należałoby dotrzeć do tamtego komputera lub pełnej kopii systemu tego starego komputera.
Własne funkcje zapisywane są, w przypadku systemu Windows, w C:\Users\użytkownik\AppData\Roaming\LibreOffice\4\user\basic\nazwa biblioteki

Re: zgubiona własna funkcja

: wt lip 22, 2025 11:44 am
autor: AdamTko
Niestety, tamtego komputera już nie ma. Czyli lipa.
Jako ciekawostkę wrzucam przykładowe wywołanie tej brakującej funkcji,
=pkt_przec_skorygowany_poprawiony(F28;G28;H28;I28;J28;K28;L28;M28;N28;O28;P28;Q28;R28;S28;T28;U28; $L$25;$U$25;$L$26;$U$26; $AA$5;$AA$9;$AC$8;$AF$9;$AH$8; 1)

@Jermor A na przyszłość, gdyby miała mi się zdarzyć podobna sytuacja - jest możliwość zapisania własnej funkcji wraz z dokumentem?

Re: zgubiona własna funkcja

: wt lip 22, 2025 12:31 pm
autor: Jermor
  • Funkcję zawsze można zapisać razem z dokumentem. Wówczas będzie dostępna tylko w tym dokumencie. Należy też pamiętać o tym, aby tak ustawić opcje bezpieczeństwa, by funkcja mogła się wykonać. O tworzeniu własnych funkcji napisałem tutaj: https://yestok.pl/lbo/y61.php.
  • Warto także napisane makro zapisać sobie w oddzielnym pliku. To można zrobić w module edytora Basic poleceniem "Plik -> Eksportuj Basic...". To polecenie eksportuje do pliku wszystkie makra znajdujące się w aktywnym module.
  • Można także wykorzystać Organizator makr "Narzędzia -> Makra -> Zarządzaj makrami -> Basic -> Organizator...".
    W oknie dialogowym jak poniżej wskazać, o jaki kontener chodzi a poniżej o jaką bibliotekę.
    obraz_2025-07-22_122734728.png
    obraz_2025-07-22_122734728.png (14.57 KiB) Przejrzano 521 razy
    Organizator blokuje jednak możliwość wyeksportowania bibliotek z kontenera "Makra i okna dialogowe aplikacji" oraz bibliotek o nazwie "Standard" z kontenera "Moje okna dialogowe i makra" i kontenera makr w dokumencie.
    Ale pozwala na zaimportowanie bibliotek do tych dwóch ostatnich kontenerów.

Re: zgubiona własna funkcja

: wt lip 22, 2025 12:54 pm
autor: Jermor
Co do samej zagubionej funkcji. Jeżeli wymagała ona jako parametru 16 kolejnych komórek z wiersza, to można taki parametr podać w postaci F28:U28, natomiast w ciele funkcji sprawdzić, czy pierwszy przekazany argument jest tablicą, czy składa się z jednego wiersza i 16 kolumn i wymagane wartości pobierać już jako elementy tablicy. Znacznie uprościłoby to wstawianie funkcji do arkusza.

Re: zgubiona własna funkcja

: czw lip 24, 2025 8:16 pm
autor: AdamTko
Dla mnie jawne przywołanie konkretnych komórek było czytelniejsze, chociaż z technicznego punktu widzenia zapewne nie optymalne, tak jak piszesz.