Dialog Najít a nahradit

Podobné dokumenty
Panely pro práci s barvami a ohraničením v Excelu 2003 a 2010

POVRCHOVÝ (OBRYSOVÝ GRAF)

Povrchový (obrysový graf)

Odstranění řádků (na základě hodnoty)

Tabulka obsluhovaná kódem VBA

Na úvod tip, jak kontrolovat šířku tabulky před a po změně. Chování makra ukazují obrázky. Jak změnit rastr v hotové tabulce Excelu

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

Hromadná změna datumu a času v buňkách

V článku Skrytý obsah na listu (1) jsme se zabývali obecnými možnosti skrývání obsahu. Dnes se na dané téma podíváme prakticky.

Slíbená princezna. Univerzální ComboBox

Různé barvy v grafu pro skutečnost a plán

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Dialog Vzhled stránky

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Spojování textových řetězců na listu

Jeden z mírně náročnějších příkladů, zaměřený na úpravu formátu buňky a především na detailnější práci s grafem (a jeho modifikacemi).

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Obsah. Úvod 15. Úvod do Excelu Práce se sešity 35

Předmluva 11 Typografická konvence použitá v knize Úvod do Excelu

Jak vložit obrázek do oblasti buněk

Barvy ve VBA jsou tématem, které dokáže nadchnout, nudit i otrávit. Každopádně se mu vyhnout nemůžeme. Pojďme na to. Práce s barvou Záznamník maker

8. Formátování. Úprava vzhledu tabulky

Dialog Najít a nahradit nám v dnešním článku předvede další svou schopnost vyhledávat podle formátu. Zde jsou předchozí díly:

8 Makra Příklad 4 Excel 2007

ZŠ ÚnO, Bratří Čapků 1332

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

Tabulka aneb Seznam čili ListObject

MS Excel makra a VBA

Řešení. ŘEŠENÍ 36 Výsledková listina soutěže

PRACOVNÍ SEŠIT MS EXCEL KOMPLET. Optimálním doplňkem stálého vzdělávání jsou elektronické kurzy.

Efektivní práce s Excelem (středně pokročilí uživatelé)

MS Excel 3: Pokročilý kurz

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

KAPITOLA 8 TABULKOVÝ PROCESOR

Modul Statistika poskytuje přehled o počtu studentů na fakultách, v jednotlivých programech, oborech, apod.

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Generátor list nastavení

Projekt Využití ICT ve výuce na gymnáziích, registrační číslo projektu CZ.1.07/1.1.07/ MS Excel

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

JAK DEFINOVAT PRAVIDLO PRO VÍCE BUNĚK NARÁZ

Pracovní sešit MS Word pokročilý

Poslední nenulová číslice faktoriálu

Níže uvedená tabulka obsahuje technické údaje a omezení aplikace Excel (viz také článek Technické údaje a omezení aplikace Excel (2007).

Různé barvy v grafu pro skutečnost a plán

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Kontingenční tabulky v MS Excel 2010

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Odstavení automatického zpracování hypertextových odkazů

Visual Basic for Applications

INFORMATIKA EXCEL 2007

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

Návod k práci s programem MMPI-2

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Excel Board příprava. ProExcel.cz Excel Board výuková a prezentační tabule pro Excel 1

Jak definovat pravidlo pro více buněk naráz

Tematický celek 03 - Cvičné příklady

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Microsoft Excel kopírování vzorců, adresování, podmíněný formát. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Evidence technických dat

Analýza a prezentace dat

Pracovní prostředí Excel 2010

Pokud Windows 8 nemáte, můžete si situaci nasimulovat i ve Windows 7 a starších.

10 Algoritmizace Příklad 2 Word 2007/ VBA

DUM 06 téma: Tvorba makra pomocí VBA

MS EXCEL - Podmíněné formátování

T6: Program MS Excel II. (standard) Určeno pro získání standardní úrovně znalostí (2 4 hodiny)

Makro. PDF vytvořeno zkušební verzí pdffactory Pro

Výukový materiál zpracovaný v rámci projektu

Formátování buněk EU peníze středním školám Didaktický učební materiál

MS EXCEL. MS Excel

Rizikové procesy. 1. Spuštění modulu Rizikové procesy. 2. Popis prostředí a ovládacích prvků modulu Rizikové procesy

František Hudek. srpen 2012

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

RELAČNÍ DATABÁZE ACCESS

Star Trek Do temnoty (infografika na panelu)

Výběr složek a souborů ve VBA

FORMÁTOVÁNÍ 2. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Tlačítka a další prvky vestavěných panelů nástrojů a nabídek (CommandBar) a jejich Control ID ve verzi Excel 2010

Stěžejní funkce MS Excel 2007/2010, jejich ovládání a možnosti využití

Obsah. Funkce grafu Zdrojová data pro graf Typ grafu Formátování prvků grafu Doporučení pro tvorbu grafů Zdroje

Tabulkový procesor otázka č.17

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 3. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Programujeme v softwaru Statistica

VISUAL BASIC. Práce se soubory

Programujeme v softwaru Statistica

Na chvilku se vžijte do situace, kdy pořádáte jednodenní konferenci a potřebujete naplánovat jednotlivé přednášky včetně přestávek.

VÝŘEZ OBLASTI BUNĚK VZORCEM

Automatická barva písma a výplň bez Bez barvy

Standardní šířka sloupce je průměrná šířka číslic 0-9 standardního písma.

Visual Basic for Application

MANUÁL K PROGRAMU JEDNODUCHÝ SKLAD (VER-1.2)

Účetní, ekonomické a právní kurzy

2. popis prostředí, nastavení pracovní plochy

POKROČILÉ ZPRACOVÁNÍ TEXTU

Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.

Jak na propojení Excelu s Outlookem

Obsah. Několik slov o Excelu 2007 a Operace při otvírání a ukládání sešitu 15. Operace s okny 27. Kapitola 1

Transkript:

Součet buněk dle barvy (pozadí) patří k nejčastějším zadáním objevující se na internetových fórech. Dodnes není uspokojivě vyřešen z pohledu funkcí listu. Na druhou stranu buďme rádi za přidanou funkčnost v automatickém filtru, jíž si ukážeme posléze. Ještě předtím ale pár slov k tématu obecně. Při každé příležitosti zdůrazňuji: 1) Smysl má barvit pozadí buňky, barva písma (ať už definovaná ručně, vlastním formátem buňky nebo podmíněným formátováním) se velmi špatně zrakem rozlišuje, pokud se nejedná o základní barvu a není dostatečně kontrastní s pozadím buňky 2) Veškeré barvičkování končí černobílou laserovou tiskárnou, kdy se slijí barvy s podobnou sytostí do jednoho odstínu šedé. V grafech vám pak nepomůže ani legenda. Ne nadarmo byli uživatelé nešťastní, když nakrátko zmizely možnosti výplní grafů typu šrafování apod. U spojnic doporučuji rozlišovat nejen barvu čáry, ale i její typ. Na listu by teoreticky pomohlo ohraničení buňky, ale takový způsob je prostě tfujtajblový. 3) I když máte možnost barevného tisku, odstín barvy na monitoru a po tisku se bude lišit. Podstatnější ovšem je, že nemalá část populace trpí barvoslepostí (test) a dalšími očními neduhy, nemluvě o klasickém problému vnímání barev (zelená/modrá apod.). 4) Excel 2003 a starší nemá žádný nástroj pro práci s buňkami na základě barvy kromě možností v dialogu Najít a nahradit. Dialog Najít a nahradit Už v základech Excelu říkám klepněte si na tlačítko Možnosti v dialogu Najít a nahradit. Rozbalí se nabídka dalších nástrojů, mezi nimiž je i možnost vyhledávání buněk na základě formátu. Pokud se přepnete na záložku Nahradit, pak můžete snadno buňky i přebarvovat. Dialog Najít a nahradit hledání dle formátu Excelplus.NET 1

Podstatná je ve vztahu k dnešnímu tématu jedna technika. Jestliže zvolíte Najít vše a ve výpisu stisknete CTRL+A, vyberou se nejen všechny položky v seznamu, ale i odpovídající buňky na listu! Po zavření dialogu se tak můžete podívat do stavového řádku řekněme na součet. Pozn. Nezapomínejte před ukončením práce s dialogem resetovat nastavení formátu (Volba Vymazat pole pro hledání formátu). Tento způsob práce s barevnými buňkami jednoduše nemohl chybět, i když v daném případě nelze mluvit o nějaké efektivní práci. Automatický filtr Klíčem k řešení úlohy za pomoci vestavěných nástrojů je skutečnost, že novodobé verze Excelu již umí filtrovat dle barvy pozadí (i písma), dokonce si poradí i s obarvením vzniklým podmíněným formátem. Nad takto přefiltrovaným sloupcem pak stačí nasadit funkci SUBTOTAL s potřebnou matematickou operací. Excelplus.NET 2

Automatický filtr filtrování dle barvy Pokud barevné buňky nejsou rozházené po celém listu, ale řešíme danou problematiku v rámci sloupců seznamu, pak je automatický filtr nejefektivnější metodou pro součet buněk dle barvy (a nejen součet, viz první parametr funkce SUBTOTAL). Vlastní funkce VBA Jak bylo řečeno, před příchodem Excelu 2007 neexistoval žádný rozumný způsob řešení úlohy bez VBA. Starší verze jednoduše neuměly filtrovat buňky podle barvy. Uvažujeme-li o řešení ve Visual Basicu pro aplikace, pak je třeba si uvědomit, že změna barvy buňky nevyvolá událost Change (změna obsahu buňky), ani Calculate (přepočet listu). I když si tedy vytvoříme vlastní funkci listu (UDF) a přinutíme ji být tzv. Volatile, přepočte se až v momentě jinak vzniklé potřeby přepočtu listu, případně při ručně vynuceném přepočtu (např. klávesou F9). A bohužel, pod VBA je velmi obtížné zjišťovat barvu coby výsledek podmíněného formátování. Prakticky dodnes se uplatňuje způsob, s Excelplus.NET 3

jakým přišel Chip Pearson (přečtěte si články Color Functions In Excel a Conditional Formatting Colors. V podstatě procházíme všechny větve podmíněných formátů a testujeme, zda-li je v danou chvíli podmínka platná. Musíme zohlednit, že barva podmíněného formátování má přednost před ručně definovanou barvou, navíc u podmíněných formátů záleží na pořadí a stopce. Zpracování takové funkčnosti jsem se s prominutím vyhnul, níže uvedená vlastní funkce pracuje pouze s ručně definovanými barvami. Chápu, že tím ztrácí na kráse a užitné hodnotě, ale Function epffunkcebarva(oblast As Range, RefBunka As Range, Optional Operace As _ String = "součet") As Double Dim rngbunka As Range Dim arrpolehodnot() Dim lngbarva As Long Dim i As Long Dim dblhodnota As Double 'funkce zareaguje na přepočet listu (nikoliv na obarvení buňky) Application.Volatile 'barva pozadí referenční buňky lngbarva = RefBunka.Interior.Color 'přeskočení chyb On Error Resume Next 'dimenzování pole ReDim arrpolehodnot(1 To Oblast.Cells.Count) 'pro každou buňku v oblasti For Each rngbunka In Oblast 'shoduje se barva pozadí buňky s referenční barvou 'a obsahuje číselnou hodnotu (může být i datum...)? If (rngbunka.interior.color = lngbarva) And (IsNumeric(rngBunka.Value)) _ Then 'počítadlo i = i + 1 'přidání číselného obsahu do součtu arrpolehodnot(i) = rngbunka.value End If Excelplus.NET 4

Next rngbunka Select Case LCase(Operace) Case "počet" epffunkcebarva = WorksheetFunction.Count(arrPoleHodnot) Case "součet" epffunkcebarva = WorksheetFunction.Sum(arrPoleHodnot) Case "průměr" epffunkcebarva = WorksheetFunction.Average(arrPoleHodnot) Case "minimum" epffunkcebarva = WorksheetFunction.Min(arrPoleHodnot) Case "maximum" epffunkcebarva = WorksheetFunction.Max(arrPoleHodnot) End Select End Function Funkce pracuje pouze s pozadím buňky. Očekává dva povinné argumenty sčítanou oblast a referenční buňku s barvou, a jeden nepovinný operaci prováděnou na hodnotách odpovídajících buněk. Součet buněk dle barvy nemusí být jedinou potřebnou operací, proto byl přidán i počet číselných buněk, průměr, minimum a maximum. Není problém za pomoci funkcí listu (WorksheetFunction) doplnit další. Excelplus.NET 5

Vlastní funkce pro práci s barevnými buňkami Na závěr bych doplnil ještě jednu proceduru pro případ, kdy nám jde pouze o seznam buněk s uvedením počtu jejich výskytu v dané oblasti. Kód využívá objekt Dictionary a jeho vlastnosti ověřovat si duplicitní výskyt položky. Sub Barvy() 'Tools / References / Microsoft Scripting Runtime Dim objdic As New Dictionary Dim rngbunka As Range Dim rngoblast As Range Dim strhlaska As String Dim strtitulek As String Dim lngbarva As Long Dim i As Integer Excelplus.NET 6

Dim PoleKlice() Dim PolePolozky() 'texty v dialogu strhlaska = "Myší označte jednosloupcovou, spojitou oblast buněk." strtitulek = "Zpracovávaná oblast" 'přechod na další řádek v případě, že se nepodaří 'přiřazení oblasti do objektové proměnné On Error Resume Next 'vlastní pokus o přiřazení oblasti z dialogu do objektové proměnné Set rngoblast = Application.InputBox(strHlaska, strtitulek, _ Selection.Address,,,,, 8) 'opuštění procedury v případě chyby If Err <> Then Exit Sub 'pro každou buňku v oblasti For Each rngbunka In rngoblast On Error Resume Next 'přiřazení barvy buňky do proměnné lngbarva = rngbunka.interior.color 'existuje záznam o barvě v knihovně? If objdic(lngbarva).exists = True Then 'ano, navýšit informaci o počtu výskytů objdic(lngbarva) = objdic(lngbarva) + 1 Else 'ne, přidat záznam o barvě a informaci o prvním výskytu objdic.add lngbarva, 1 End If Next rngbunka 'přenos klíčů a hodnot z objektu knihovny do polí PoleKlice = objdic.keys PolePolozky = objdic.items 'texty v dialogu Excelplus.NET 7

strhlaska = "Myší označte počátek vložení výsledku." strtitulek = "Cílová oblast" 'přechod na další řádek v případě, že se nepodaří 'přiřazení oblasti do objektové proměnné On Error Resume Next 'vlastní pokus o přiřazení oblasti z dialogu do objektové proměnné Set rngoblast = Application.InputBox(strHlaska, strtitulek,,,,,, 8) 'opuštění procedury v případě chyby If Err <> Then Exit Sub 'zamezení překreslování obrazovky Application.ScreenUpdating = False 'pro každou buňku v cílové oblasti For Each rngbunka In rngoblast.cells(1).resize(ubound(poleklice) + 1, 1) 'počítadlo i = i + 1 'přiřazení barvy buňce z pole s klíči rngbunka.interior.color = PoleKlice(i - 1) 'přiřazení hodnoty do buňky rngbunka.value = PolePolozky(i - 1) Next rngbunka 'povolení překreslování obrazovky Application.ScreenUpdating = True End Sub Excelplus.NET 8

Výčet barevných buněk Příloha soucet_dle_barvy.zip Excelplus.NET 9