Tabulka obsluhovaná kódem VBA

Podobné dokumenty
Tabulka aneb Seznam čili ListObject

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

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.

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

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

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

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...

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

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

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

Stručný obsah. K2118.indd :15:27

MS Excel makra a VBA

Slíbená princezna. Univerzální ComboBox

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

8 Makra Příklad 4 Excel 2007

Evropský zemědělský fond pro rozvoj venkova: Evropa investuje do venkovských oblastí. v cestovním ruchu P3. Pavel Petr Petr.USII@upce.

II. Vzorce v Excelu Tipy pro práci s Wordem Kontingenční tabulky v Excelu, 1. část

3MA481 Propojení Accessu a Excelu David Hach

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

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

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

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

Grafy opakování a prohloubení Při sestrojování grafu označíme tabulku a na kartě Vložit klikneme na zvolený graf

Povrchový (obrysový graf)

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

POVRCHOVÝ (OBRYSOVÝ GRAF)

Dialog Najít a nahradit

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

Microsoft Access. Úterý 26. února. Úterý 5. března. Typy objektů databáze: Vytvoření a návrh nové tabulky

Microsoft. Access. Výběrové dotazy. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

4. Vzorce v Excelu Tipy pro práci s Wordem Kontingenční tabulky v Excelu

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

Kontingenční tabulky v MS Excel 2010

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

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

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

Pracovní sešit MS Word pokročilý

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

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

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

Obsah. Základy práce s databází 13. Tabulky 43. Obsah. Úvod 9 Poděkování 12

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

KAPITOLA 11 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

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

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

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

4. Vzorce v Excelu Tipy pro práci s Wordem Kontingenční tabulky v Excelu

Dialog Vzhled stránky

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

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

VÝŘEZ OBLASTI BUNĚK VZORCEM

Makra. Orámování oblasti

Obsah. Úvod 9. Úvod do Office Seznámení s Office Vylepšení programu Access XML 13 Inteligentní značky 14

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

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).

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

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

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.

Skripty základy VB, vestavěné objekty, příklady

Excel - pokračování. Př. Porovnání cestovních kanceláří ohraničení tabulky, úprava šířky sloupců, sestrojení grafu

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

Marek Laurenčík. Excel. práce s databázemi a kontingenčními tabulkami

Sklad v Excelu OBSAH 2/11

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

Sloučená buňka kolik vidíte v ohraničené oblasti celkem čtverců?

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

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

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.

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

Úvodní příručka. Získání nápovědy Kliknutím na otazník přejděte na obsah nápovědy.

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

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

Pro vytvoření zdrojového souboru použít export GEOPORTAL, který obsahuje i adresy na webové stránky s válečnými hroby.

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel II Anotace:

Excel tabulkový procesor

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

MAXScript výukový kurz

Hromadná korespondence

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

Úvodní kód VBA berte na tomto místě spíš jako informativní, i když je okomentovaný, smysl má odkrokovaný a to za současného sledování dění na listu.

Tabulkový procesor. Základní rysy

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

První cestou, jak vynechat jakákoliv data v grafu, je jejich skrytí, ať už přímo či filtrem aplikovaným na řádcích.

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

MICROSOFT EXCEL Mgr. Krejčí Jan (ZSJP) MICROSOFT EXCEL září / 3

I. Příprava dat Klíčový význam korektního uložení získaných dat Pravidla pro ukládání dat Čištění dat před analýzou

DATABÁZE MS ACCESS 2010

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

EXCELentní tipy a triky pro mírně pokročilé. Martina Litschmannová

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

ExcelVBAmodul. Podpora pro výměnu dat automatů MICROPEL s aplikací Microsoft Excel

Obsahy kurzů MS Office

Použijeme-li prostorový typ grafu, můžeme pro každou datovou zvolit jiný tvar. Označíme datovou řadu, zvolíme Formát datové řady - Obrazec

Úvod do filtrace, Quick filtr

Pracovní prostředí Excel 2010

Generátor list nastavení

'============================================================== Data\Priklady\04_Zpracovani_dat\ ' Název souboru 04_01_Comparison.

František Hudek. duben Informační a komunikační technologie MS Excel Úvod do Excelu I. Seznámení s pracovním prostředím aplikace MS Excel.

RELAČNÍ DATABÁZE ACCESS

Transkript:

V článku Tabulka aneb Seznam čili ListObject jsme se věnovali Tabulkám z pohledu práce na listu. Dnes si je osaháme prostřednictvím kódu VBA, kde jim není vyhrazen podle očekávání objekt Table, ale ListObject. Následující procedury najdete v přiloženém sešitu a doporučuji je odkrokovat při současném zobrazení listu s Tabulkou. Tabulka pro VBA ProExcel.cz

V kódu najdete hodně poznámek ohledně posunu buněk pod Tabulkou. K němu (ne vždy) dochází, pokud v Tabulce mažete/přidáváte řádky nebo měníte zobrazení Řádku souhrnů. Pokud toto řešit nechcete, tak se držte toho, co bylo řečeno posledně do prostoru pod Tabulkou již nevkládejte žádné s ní nesouvisející hodnoty. 0 0 0 Sub TabulkaCasti() With lotabulka 'celá tabulka.range.select 'hlavička tabulky.headerrowrange.select 'datová část tabulky.databodyrange.select 'datová část tabulky (konstanty, tj. bez vzorců).databodyrange.specialcells(xlcelltypeconstants).select 'druhý sloupec tabulky.listcolumns().range.select 'datová část druhého sloupce tabulky.listcolumns().databodyrange.select 'třetí datový řádek tabulky.listrows().range.select 'řádek souhrnů (pokud je zobrazen) '.ShowTotals = True.TotalsRowRange.Select ProExcel.cz

0 Sub TabulkaVlastnosti() With lotabulka 'počet řádků včetně hlavičky (a řádku souhrnů) intpocetradku =.Range.Rows.Count 'počet datových řádků intpocetzaznamu =.ListRows.Count 0 0 Sub TestBunkaTabulky() Dim rngbunka As Range Dim blnbunkatabulky As Boolean Set rngbunka = ActiveCell On Error Resume Next 'je buňka součástí Tabulky? blnbunkatabulky = (rngbunka.listobject.name <> "") On Error GoTo 0 If blnbunkatabulky = True Then 'výběr datové oblasti Tabulky, jíž je buňka součástí rngbunka.listobject.databodyrange.select ProExcel.cz

0 0 Sub PridaniJednohoRadku() 'zobrazení řádku souhrnů není na překážku With lotabulka 'vložení nového řádku na konec tabulky.listrows.add 'vložení nového řádku na konec tabulky 'buňky pod tabulkou se neposunou.listrows.add AlwaysInsert:=False 'pozn. Zobrazení/skrytí řádku souhrnů posouvá 'buňky ležící pod Tabulkou vždy... 'vložení nového řádku nad. záznam 'tj. definujeme pozici nového řádku.listrows.add () ProExcel.cz

0 0 0 0 Sub PridaniDatNaKonec() 'Zack Barresse Dim arrpridavanadata As Variant Dim inpocetradku As Integer Dim intpocetsloupcu As Integer 'převzetí dat, zde z oblasti buněk do pole arrpridavanadata = wshlist.range("b0:d").value 'rozměry datového bloku (pole) inpocetradku = UBound(arrPridavanaData, ) intpocetsloupcu = UBound(arrPridavanaData, ) 'nutné skrytí řádku souhrnů, pokud je zobrazen 'pozor, dojde k posunu buněk ležících pod Tabulkou lotabulka.showtotals = False With lotabulka.databodyrange 'přidání dat na konec Tabulky 'neposouvá buňky ležící pod Tabulkou.Resize(inPocetRadku, intpocetsloupcu).offset(.rows.count).value = _ arrpridavanadata 'zobrazení řádku souhrnů 'pozor, dojde k posunu buněk ležících pod Tabulkou 'lotabulka.showtotals = True 'oživení filtru If lotabulka.showautofilter = True Then lotabulka.autofilter.applyfilter Pozn. Řádek souhrnů je sice chytrý, ale někdy nám prostě překáží. ProExcel.cz

0 0 0 Sub VlozeniDat() 'Zack Barresse Dim arrpridavanadata As Variant Dim inpocetradku As Integer Dim intpocetsloupcu As Integer 'převzetí dat, zde z oblasti buněk do pole arrpridavanadata = wshlist.range("b0:d").value 'rozměry datového bloku (pole) inpocetradku = UBound(arrPridavanaData, ) intpocetsloupcu = UBound(arrPridavanaData, ) With lotabulka.databodyrange 'přidání dat mezi a. řádek Tabulky 'tj. pod. řádek 'neposouvá buňky ležící pod Tabulkou.Resize(inPocetRadku).Offset().Insert Shift:=xlShiftDown.Resize(inPocetRadku, intpocetsloupcu).offset().value = _ arrpridavanadata 'oživení filtru If lotabulka.showautofilter = True Then lotabulka.autofilter.applyfilter Pokud se nepletu, Tabulku průvodci na listu nativně nabízejí pro zdroje dat z Microsoft Access, Microsoft Excel a pravděpodobně i z Microsoft SQL nebo třeba MySQL. V případě textových souborů (CSV) to trochu skřípe. Je otázka, zda-li jít cestou QueryTable či OLEDB (ADO, schema.ini). O tom ale zase někdy jindy. Nyní se podíváme na filtrování. ProExcel.cz

0 0 0 0 Sub TabulkaFiltr() 'zapnutí/vypnutí filtru Tabulky 'lotabulka.range.autofilter 'striktní obsah (Richtr) lotabulka.range.autofilter Field:=, Criteria:="=Richtr" 'striktní obsah (vše kromě položky Richtr) lotabulka.range.autofilter Field:=, Criteria:="<>Richtr" 'obsah (položky začínající na písmeno K) '?... jeden znak, *... žádný nebo více znaků lotabulka.range.autofilter Field:=, Criteria:="=K*" 'striktní obsah (Koch nebo Morávek) lotabulka.range.autofilter Field:=, Criteria:="=Koch", Operator:=xlOr, _ Criteria:="=Morávek" 'striktní obsah (Koch, Morávek, Sochor) lotabulka.range.autofilter Field:=, Criteria:=Array("Koch", "Morávek", _ "Sochor"), Operator:=xlFilterValues 'není nástroj pro "vše kromě položek z následujícího výčtu" 'lze řešit negací úlohy nebo přes rozšířený filtr, tzn. 'OBCHODNIK OBCHODNIK OBCHODNIK '<>Koch <>Morávek <>Sochor 'v případě datumu je nutný americký formát mm/dd/yyyy 'a to bez ohledu na výstup ze Záznamníku maker 'tj. např. Criteria:=">=0//0" 'lze si pomoci funkcemi CLng, CDate 'oživení filtru (po aktualizaci dat) 'If lotabulka.showautofilter = True Then ' lotabulka.autofilter.applyfilter ' Pozor na jednu nebezpečnou věc. V rámci filtru a parametru Criteria očekává Excel String a to i v případě čísel a testování rovnosti (regulérně bychom měli doplňovat znak =, např. Criteria:= = ). ProExcel.cz

Běžně si Excel s předaným číselným typem (Integer) poradí i bez uvedeného rovnítka, ale rozhodně tento stav nesmí nastat při užití Operator:= xlfiltervalues. Jestliže takto definovanému filtru předhodíte jednu hodnotu číselného typu, tak Excel začne dělat psí kusy, přestane fungovat překreslování a aplikace nepůjde korektně zavřít. Jedná se podle mě o neošetřený stav a bug. 0 0 Sub ResetFiltruTabulky() 'pokud Tabulka používá filtr... If lotabulka.showautofilter Then 'pokud je filtr aktivní If lotabulka.autofilter.filtermode Then 'zobrazení všech dat lotabulka.autofilter.showalldata Pucování tabulky od dat lze řešit dvojím způsobem. Osobně jsem si oblíbil druhý z nich. ProExcel.cz

0 0 Sub VycisteniTabulky() 'vymazání všech datových řádků tabulky 'nelze aplikovat na Tabulce bez datových řádků If lotabulka.listrows.count > 0 Then lotabulka.databodyrange.delete 'výsledek: 'podobjekt DataBodyRange = Nothing 'Tabulka zobrazuje jeden fiktivní datový řádek (bez vzorců) 'Rows.Count = pro hlavičku + fiktivní řádek 'ale (!) ListRows.Count = 0 'dojde k posunu buněk ležících pod Tabulkou 'pro další práci je nutné přidat alespoň jeden řádek lotabulka.listrows.add 'dojde k navrácení případných vzorců ve sloupcích 'pozn. vzorce se uchovávají v../xl/tables/table?.xml 'buňky ležící pod Tabulkou se neposunou ProExcel.cz

0 0 Sub VycisteniTabulky() 'operace proběhnou jen na minimálně jednořádkové 'vyplněné datové oblasti On Error Resume Next Application.ScreenUpdating = False With lotabulka.databodyrange 'odstranění všech řádků kromě prvního.resize(.rows.count - ).Offset().Delete 'vyčistění zbylého řádku od hodnot (vzorce ponechány).specialcells(xlcelltypeconstants).clearcontents On Error GoTo 0 Application.ScreenUpdating = True Příloha (váže se i k předchozímu článku): tabulka.zip ProExcel.cz 0