Tło komórki i jego wystąpienie.
Tło komórki i jego wystąpienie.
Witam wszystkich.
Czy jest możliwość oznaczenia komórki (prawda,fałsz? lub inaczej) jeżeli sąsiednia posiada kolor tła np. czerwony? Nie chodzi o sumowanie a tylko o samo wystąpienie.
Czy jest możliwość oznaczenia komórki (prawda,fałsz? lub inaczej) jeżeli sąsiednia posiada kolor tła np. czerwony? Nie chodzi o sumowanie a tylko o samo wystąpienie.
OpenOffice 4.1.1 Win7
Re: Tło komórki i jego wystąpienie.
Da się, ale wymaga elementów programowania:
albo przy użyciu funkcji operującej na skoroszycie (tzw. makro, np. Sub w Basicu),
albo samodzielnie napisanej (np. Function w Basicu) funkcji rozszerzającej repertuar wyrażeń w formułach.
To ostatnie rozwiązanie wymaga pewnej formalnej gimnastyki, ponieważ funkcja wywołana z poziomu formuły dowiaduje się o wartości przechowywanej w komórce, ale nie o jej adresie ani innych właściwościach (np. kolorze). Patrz np. https://forum.openoffice.org/en/forum/v ... 3&p=509096
Jedna z możliwości (patrz np. https://forum.openoffice.org/en/forum/v ... 2&p=481787) polega na przekazaniu do funkcji adresu komórki w postaci tekstu zamiast jako wyrażenia języka formuł (podobnie jak w tzw. adresowaniu pośrednim).
Pytanie, do czego to potrzebne. Jeśli chcesz to zrobić raz, dla konwersji, lepiej napisać makro. Jeśli projektujesz system który ma pracować w oparciu o kolory, lepiej się wycofać z tej decyzji. Kolor winien być skutkiem działania, nie przyczyną.
Pozostaje pytanie, co rozumieć przez „kolor czerwony” w przestrzeni RGB o 8-bitowej głębi każdej składowej? Tylko (255,0,0), różne (x,0,0) przy dowolnym x > ..., czy jeszcze inaczej?
Załączam szkic takiej funkcji w poniższym kodzie
oraz osadzony w skoroszycie
albo przy użyciu funkcji operującej na skoroszycie (tzw. makro, np. Sub w Basicu),
albo samodzielnie napisanej (np. Function w Basicu) funkcji rozszerzającej repertuar wyrażeń w formułach.
To ostatnie rozwiązanie wymaga pewnej formalnej gimnastyki, ponieważ funkcja wywołana z poziomu formuły dowiaduje się o wartości przechowywanej w komórce, ale nie o jej adresie ani innych właściwościach (np. kolorze). Patrz np. https://forum.openoffice.org/en/forum/v ... 3&p=509096
Jedna z możliwości (patrz np. https://forum.openoffice.org/en/forum/v ... 2&p=481787) polega na przekazaniu do funkcji adresu komórki w postaci tekstu zamiast jako wyrażenia języka formuł (podobnie jak w tzw. adresowaniu pośrednim).
Pytanie, do czego to potrzebne. Jeśli chcesz to zrobić raz, dla konwersji, lepiej napisać makro. Jeśli projektujesz system który ma pracować w oparciu o kolory, lepiej się wycofać z tej decyzji. Kolor winien być skutkiem działania, nie przyczyną.
Pozostaje pytanie, co rozumieć przez „kolor czerwony” w przestrzeni RGB o 8-bitowej głębi każdej składowej? Tylko (255,0,0), różne (x,0,0) przy dowolnym x > ..., czy jeszcze inaczej?
Załączam szkic takiej funkcji w poniższym kodzie
Kod: Zaznacz cały
rem funkcja opracowana przez Jan_J na potrzeby uczestników serwisu forum.openoffice.org/pl
rem kopiowanie, modyfikacja, rozposzechnianie w dowolnych celach dozwolone
rem brak gwarancji dot. spełnania oczekiwań, skuteczności, bezpieczeństwa danych etc.
rem październik 2021
rem
rem wyciąga wektor barwy tła z komórki o wskazanym adresie
rem parametr: TEKST z adresem komórki
rem wynik: TEKST z opisem wektora RGB koloru tła
rem ograniczenie: działa tylko na pierwszoplanowym arkuszu (to jest wstępny szkic funkcji)
rem
function pokazKolor(adres as string) as string
rem tu uproszczenie dot. obsługi wyłącznie pierwszoplanowego arkusza
arkusz = ThisComponent.CurrentController.ActiveSheet()
zakres = arkusz.getCellRangeByName(adres)
kom = zakres.GetCellByPosition(0,0)
kolor = kom.cellBackColor()
pokazKolor = "(" & kolor \ 65536 & ", " & (kolor mod 65536) \ 256 & ", " & (kolor mod 256) & ")"
end function
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Tło komórki i jego wystąpienie.
Bardzo dziękuje ale to nie mój poziom , czy jeżeli zamiast koloru tła pytanie będzie dotyczyło koloru czcionki (lub jej stylu) to coś będzie prościej? Ewentualnie czy da się oznaczyć komórkę w której "zachodzi" formatowanie warunkowe które zmieniło kolor tła? Właściwie jest mi to potrzebne tylko do posortowania komórek na te w których formatowanie zaznaczyło jej tło kolorem i na te z białym tłem.
OpenOffice 4.1.1 Win7
Re: Tło komórki i jego wystąpienie.
Formatowanie warunkowe zachodzi tylko wówczas, gdy spełniony jest konkretny warunek. Zatem, tworząc formułę sprawdzającą ten warunek w towarzyszącej danym kolumnie, uzyskasz wynik PRAWDA lub FAŁSZ, a to pozwoli ci posortować dane wg tej kolumny.
W wersji 7.2 Calca dodano możliwość filtrowania danych po kolorze tła. Niestety dotyczy to tylko komórek, w których kolor jest elementem stylu przypisanego wprost (w komórce zmieniono kolor poprzez sformatowanie jej indywidualnie; przypisano komórce styl, w którym jest kolor tła; formuła zawarta w komórce zawiera funkcję STYL()), nie są rozpoznawane kolory wynikające z formatowania warunkowego.
W wersji 7.2 Calca dodano możliwość filtrowania danych po kolorze tła. Niestety dotyczy to tylko komórek, w których kolor jest elementem stylu przypisanego wprost (w komórce zmieniono kolor poprzez sformatowanie jej indywidualnie; przypisano komórce styl, w którym jest kolor tła; formuła zawarta w komórce zawiera funkcję STYL()), nie są rozpoznawane kolory wynikające z formatowania warunkowego.
AOO 4.1.15, LO 7.5.9 (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.
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.
Re: Tło komórki i jego wystąpienie.
W przypadku koloru czcionki i stylu sprawa jest podobna: bez makra się nie da. Można by się pokusić i wgrać rozszerzenie COUNTSTYLE.
ALE piszesz:
ALE piszesz:
Czy to oznacza że stosujesz formatowanie warunkowe?? Jeśli tak to wystarczy dany warunek formatowania wpisać do jakieś kolumny obok aby uzyskać informację czy został on w danym wierszu spełniony czy też nie.formatowanie zaznaczyło jej tło kolorem i na te z białym tłem.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Tło komórki i jego wystąpienie.
Jermor pisze:Formatowanie warunkowe zachodzi tylko wówczas, gdy spełniony jest konkretny warunek. Zatem, tworząc formułę sprawdzającą ten warunek w towarzyszącej danym kolumnie, uzyskasz wynik PRAWDA lub FAŁSZ, a to pozwoli ci posortować dane wg tej kolumny.
O to chyba to mi rozwiązuje problem. Dziękuję za pomoc.Rafkus pisze:Jeśli tak to wystarczy dany warunek formatowania wpisać do jakieś kolumny obok aby uzyskać informację czy został on w danym wierszu spełniony czy też nie
OpenOffice 4.1.1 Win7
Re: Tło komórki i jego wystąpienie.
Ad istota rzeczy:
Wniosek: nie spieszyć się z odpowiedzią.
Ad czy nie da się prościej:
nie da się, jeżeli wyciągamy dane z atrybutów komórki rozumianej jako część składowa dokumentu. Jeśli zaś mamy dostęp do obliczenia przesłanek, które daną wartość atrybutu spowodowały, sprawa radykalnie się upraszcza; patrz np. formuła formatowania warunkowego.
W informatyce sposób przechowywania informacji — czyli jej reprezentacja w postaci danych — miewa istotne znaczenie. W życiu zresztą także.
Klasyczny przykład problemu XY wg terminologii Erica S. Raymonda. Patrz np. https://en.wikipedia.org/wiki/XY_problemrogerege pisze:jest mi to potrzebne tylko do posortowania komórek
Wniosek: nie spieszyć się z odpowiedzią.
Ad czy nie da się prościej:
nie da się, jeżeli wyciągamy dane z atrybutów komórki rozumianej jako część składowa dokumentu. Jeśli zaś mamy dostęp do obliczenia przesłanek, które daną wartość atrybutu spowodowały, sprawa radykalnie się upraszcza; patrz np. formuła formatowania warunkowego.
W informatyce sposób przechowywania informacji — czyli jej reprezentacja w postaci danych — miewa istotne znaczenie. W życiu zresztą także.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)