Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 4. 3. 2014 17:24:31

stana
Člen
Registrace: 4. 3. 2014
Příspěvků: 2

Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

Předem zdravím a děkuji za pomoc

Potřeboval bych vytvořit makro, které by vybralo ve sloupci pouze buňky s pozadím v červené barvě vygenerované podmíněným formátováním  a kopii odeslalo na jiný lis. Děkuji

Editoval stana (6. 3. 2014 21:45:56)

Offline

#2 5. 3. 2014 11:29:10

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,658

Re: Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

To by neměl být problém. Dokonce pokud je to do jiného listu, ale stejného sešitu, měly by to zvládnout vzorce za pomoci jediné funkce. Tedy ta by se jenom nakopírovala do knihovny "moje standard" a když by se pojmenovala třeba "BARVA", mohla by vracet například přímo obsah buňky, nebo by do pomocného sloupce vykopírovala například adresu buňky s určitým barevným podkladem, nebo jen jedničku jako logické "true".
    Šlo by to udělat snadno tak, aby se na novém listě řadily vybrané buňky hned pod sebe a ne na místo, které mají v prvním (originálním) listu.
    Problém je jen v tom, že lze detekovat buď jen konkrétní barvy, nebo všechny různé barvy současně. Takže to byste měl upřesnit. Problém je v tom, že když se podbarvují podklady ručně, může tam být pokaždé trochu jiná červená (nebo jiná použitá) barva.
    Zase opačný případ obsahuje riziko, že někdo implicitní bílou nahradí bílou barvou z palety - ta má jiné číslo, a proto se vybere také.



    V jiném případě - tedy že trváte na té červené, musíte poslat číslo barvy. Je mi jasné, že s tím byste měl problém, takže Vám pošlu funkci na detekci barvy. V podstatě její úpravou získáte to co popisuji výše.


    Další možností je klasické makro - které lze spouštět například tlačítkem (funkce se spouští jako vzorec - např: =BARVA(A1), nebo podobně jako makro z knihovny.) Tam bych už tipnul, že by mohlo samo identifikovat i různé barvy a ty seřadit pod sebe i když by jich tam bylo třeba 15 druhů.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 5. 3. 2014 12:42:40

standa
Člen
Registrace: 5. 2. 2014
Příspěvků: 13

Re: Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

Zase mohu jen poděkovat za Vaši odpověď.

S tou červenou barvou to byl jen příklad. Je mně jasné, že to musí být konkretní číslu barvy. Nejoptimálnější pro mne by byla ta poslední alternativa. Problém je v tom, že nevím která funkce určí barvu pole.

Offline

#4 5. 3. 2014 13:13:40

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,658

Re: Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

Posílám funkci pro detekci barvy pozadí a písma. Normálně jí uložte mezi makry do knihovny Standard - buď pro všechny dokumenty (moje Standard), nebo jen do knihovny konkrétního sešitu.

Function BarvaPozadi 'Vypíše číslo barvy pozadí buňky vlevo
 oCell = ThisComponent.CurrentController.getSelection() 
With oCell.RangeAddress 
SH = .Sheet 
SC = .StartColumn 
SR = .StartRow
End With 
oSheet = ThisComponent.Sheets(SH) 
oCell = oSheet.GetCellbyPosition(SC+i-1, SR)
barva = oCell.CellBackColor
pismo = oCell.CharColor
BarvaPozadi = "Číslo barvy pozadi = " & barva & " Číslo barvy písma = " & pismo
End Function

     Až to tam dáte a uložíte, postačí zavolat vzorec =BarvaPozadi(). Musí to být ale v buňce, které leží hned napravo od buňky, kterou testujete.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 5. 3. 2014 14:27:52

standa
Člen
Registrace: 5. 2. 2014
Příspěvků: 13

Re: Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

Děkuji za Vaší snahu.
Po vložení nového sloupce vpravo od testovaného sloupce s různou barvou buněk generovanou podmíněným formátováním a vložení funkce BarvaPozadi() do polí se vypíše vždy " Číslo barvy pozadí = -1 Číslo barvy písmo = 0 "

Offline

#6 5. 3. 2014 15:33:30

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,658

Re: Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

To je správně jen pokud je to vedle buňky bez barvy pozadí. Číslo -1 je implicitní jak pro barvu pozadí, tak pro barvu písma. Ta nula by tam být neměla. Nestojíte náhodou vedle sloučených buněk?
     Zadejte do "A1" libovolnou barvu pozadí (nebo i písmo v nějaké barvě). Do "B1" zadejte =BARVAPOZADI() a musí Vám to vrátit něco jiného. Pokud byte měl například sloučené buňky A1:C1, tak v D1, které je opticky vedle vyskočí právě taková hláška jak píšete - jen by tam byly dvě (-1). Nula by tam být v žádném případě nebyla. Ve skutečnost se funkce ptá na buňku C1.


     Tato funkce se dá snadno upravit tak, aby místo vypsání barvy písma vykopírovala obsah podbarvené buňky. Vypsat se dají například všechny buňky, které mají jinou barvu pozadí nežli (-1).


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 5. 3. 2014 15:58:56

standa
Člen
Registrace: 5. 2. 2014
Příspěvků: 13

Re: Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

Pokud Vám to nebude vadit, tak Vám pošlu celý soubor i s chybovým hlášením, které se objevilo v makru. Nemáte-li zájem, stačí napsat a nebudu Vás s tím obtěžovat, tento problém s barvou pozadí není nijak důležitý pro činnost souboru, je to jen můj pokus o vylepšení a slouží mně jako k výuka v Calku, vzhledem k množství Vašich odpovědí i  ostatním tázajícím chápu, že nemusíte mít čas . Děkuji

Offline

#8 5. 3. 2014 16:03:10

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,658

Re: Makro pro výběr červených buněk - Děkuji VYŘÍRZENO

Klidně napište. Můžete to dát také sem jako odkaz pomocí "letecképošty.cz", nebo "Uložto.cz".


PS - další možností je to, když by pozadí bylo provedeno podmíněným formátem. Funkce čte jen ten "na tvrdo" nastavený. Takže když by tam byla "natvrdo" žlutá a podmíněným fomátem zelená - ten by byl vidět, bude se číst žlutá.

Editoval neutr (5. 3. 2014 16:09:30)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí