Strona 1 z 1

Jak zaszyć formatowanie warunkowe we własnej funkcji?

: ndz paź 06, 2013 8:49 pm
autor: krzys59
Witam
Pytanie jak w temacie, jak zaszyć w Calc we własnej funkcji formatowanie warunkowe?
W najprostszym przykładzie, chcę sumować komórki a1 i b1 i jeśli wynik sumowanie jest >10 to format "zielony", a jeśli <=10 to format "czerwony".
Format "zielony" i "czerwony" mam zdefiniowany w spisie formatów.
Chcę użyć formatowania warunkowego ale za pomocą własnej funkcji, więc może to być w różnych miejscach arkusza. Potrafię to zrobić makrem, poprzez sprawdzenie wartości w zadanej komórce i potem ustawienie formatu w innej, ale używam bezwzględnych adresów, nie wiem jak to podpiąć do funkcji z wywołaniem z poziomu calca np =Policz(A1;B1) gdzie Policz to zdefiniowana funkcja.
Czy może odwoływać się z poziomu funkcji do gotowego makra ustawiającego format komórki? Może jednak można bezpośrednio z funkcji?
Pozdrawiam
Krzysiek

Re: Jak zaszyć formatowanie warunkowe we własnej funkcji?

: ndz paź 06, 2013 9:23 pm
autor: Minio
Możesz ustawić styl komórki bezpośrednio z formuły.
Poczytaj o funkcjach STYL i JEŻELI. Prawdopodobnie będziesz potrzebował także BIEŻĄCY.

Przenośność takiego rozwiązania to zupełnie inna kwestia. Ale skoro już zdecydowałeś się na makra, to pewnie przenośność nie jest dla Ciebie priorytetem.

Re: Jak zaszyć formatowanie warunkowe we własnej funkcji?

: ndz paź 06, 2013 10:23 pm
autor: belstar
krzys59 pisze:Czy może odwoływać się z poziomu funkcji do gotowego makra ustawiającego format komórki?
Jan_J w poście http://forum.openoffice.org/pl/forum/vi ... =32&t=1868 napisał:
W OpenOffice argumenty adresowe Cell albo Range przekazywane do funkcji wywoływanych poprzez formuły nie zawierają obiektów typu Cell lub odp. Range, tylko pobrane z nich tablice wartości. Wobec tego w formule możesz sprawdzić wartość innej komórki, ale nie masz dostępu do jej obiektu, a w szczególności do jej koloru tła.
Wniosek sam się narzuca.

Zastosuj poradę Minia (źródło help)

Kod: Zaznacz cały

=Policz(A1;B1) + STYL(JEŻELI(BIEŻĄCY()>10;"Czerwony";"Zielony"))
Oczywiści musisz zdefiniować dwa style- czerwony i zielony

Re: Jak zaszyć formatowanie warunkowe we własnej funkcji?

: pn paź 07, 2013 6:28 pm
autor: krzys59
Dzięki za podpowiedź, choć to nie całkiem to o co mi chodzi.
Chcę problem formatowania warunkowego rozwiązać poprzez funkcję, bo zauważyłem dziwną rzecz, arkusze z wielokrotnym formatowaniem warunkowym, w kolejnych wersjach LO potrafią się kompletnie rozwalić (do tego jeszcze różne systemy operacyjne). A już jak ktoś ma wersję <4 to niestety bardziej skomplikowane formatowania całkiem wypadają. Dlatego szukam rozwiązania poprzez własne funkcje. Ale wygląda, że się nie da. Szkoda