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

Podobné dokumenty
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

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

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

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í

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

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

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

Makra. Orámování oblasti

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

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

Visual Basic for Applications

Tabulka obsluhovaná kódem VBA

8 Makra Příklad 4 Excel 2007

Dialog Najít a nahradit

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

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

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.

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

Slíbená princezna. Univerzální ComboBox

Poslední nenulová číslice faktoriálu

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

10 Algoritmizace Příklad 2 Word 2007/ VBA

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

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

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

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

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

Generátor list nastavení

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

Star Trek Do temnoty (infografika na panelu)

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Vzorec. Operátory v Excelu. Operátor přiřazení

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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

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

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

C# konzole Podíl dvou čísel, podmínka IF

Povrchový (obrysový graf)

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

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

MS Excel makra a VBA

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

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

MS Excel - Superpokročilí

Rotace, transpozice a zrcadlení matice hodnot

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

VISUAL BASIC. Práce se soubory

POVRCHOVÝ (OBRYSOVÝ GRAF)

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Příklad 1. Verze: 1.1 Licence: shareware

Jazyk PL/SQL Úvod, blok

V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.

Programování v jazyce JavaScript

VBA: VYTVOŘENÍ OBJEKTU GRAF (CHART) Deklarace proměnné typu Chart. Pro vytvoření nového grafu použijeme kolekci ChartObjects a její metodu Add.

Kódy pro formát čísla

Dialog Vzhled stránky

MsgBox, InputBox, FileDialog, Pravomoci vlastních funkcí (UDF) Function TESTOVKA() 'dialog (MsgBox) TESTOVKA = MsgBox("Baf!

Otázky neopisuj, piš odpověď!

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

5. kapitola Spouštění aplikací Visual Basic.Net, spustitelné soubory

Univerzita Pardubice Fakulta chemicko-technologická Katedra analytické chemie. Licenční studium Statistické zpracování dat

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

PROGRAMOVÁNÍ V SHELLU

Anotace. Soubory a práce s nimi, rekurze podruhé, struktury (datový typ record), Martin Pergel,

9 Úprava maker Příklad 4 Word 2007/ VBA

VÝŘEZ OBLASTI BUNĚK VZORCEM

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

DUM 06 téma: Tvorba makra pomocí VBA

Pozn č. 1: Matematickým ekvivalentem pro pravdivostní hodnotu True je ve Visual Basicu -1 (autora bych škrtil a topil).

Velmi stručný návod jak dostat data z Terminálu Bloomberg do R

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Databáze I. Přednáška 4

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

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.

Stručný návod k programu Octave

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

Microsoft Office. Excel vlastní formát buněk

LEKCE 6. Operátory. V této lekci najdete:

Článek je napsán pro českou verzi Excelu 2010, ale věřím, že i v jných verzích si dovedete poradit.

Hromadná korespondence

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

3MA481 Propojení Accessu a Excelu David Hach

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

Makra v OpenOffice.org Calc

V praxi je běžné, že se ovlivňuje více prvků navzájem. Tady už si s jednou globální proměnnou nevystačíme.

Přehled příkazů pro CLI část aplikace Fits Header Modifier Jan Hlava

Knihovna WebGraphLib

Sada 1 - Základy programování

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

Microsoft Office Excel - makra. Automatizace práce v MS Excel. Autor: Jaroslav Nedoma

Programové vybavení. Typografická pravidla I. Mgr. Martin Kolář SOŠ a SOU spojů a informatiky Kolín

Spuštění a ukončení databázové aplikace Access

Implementace LL(1) překladů

Tabulkový procesor. Základní rysy

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Programovací jazyk Pascal

Transkript:

je realizovatelná ručním přepisem, funkcemi DATUM a ČAS (ve VBA funkce DateSerial a TimeSerial), případně funkcí EDATE a poslepováním dalších funkcí. Připomínám, že pro aktuální datum slouží klávesová zkratka Ctrl + ; (středník), a pro čas Ctrl + Shift + : (dvojtečka). Na listu daný úkol zvládají i funkce DNES a NYNÍ (čas je rozdíl NYNÍ-DNES), ve VBA pak máme funkce Date a Now, resp. Time. Hromadná změna datumu a času v buňkách Ruční úpravy datumu a času ve více buňkách jsou asi nejotravnější možností. Na numerickém bloku klávesnice nemáme k dispozici ani tečku pro datum, ani dvojtečku pro čas (u ní navíc potřebujeme Shift). U datumu si můžeme pomoci tak, že kupříkladu vstup 9/ do (předem naformátované) buňky Excel zamění za 9.. aktuálního roku (9..09). Pro čas se hodí přidat nahrazení dvou čárek za dvojtečku do Automatických oprav (viz Soubor / Možnosti / Kontrola pravopisu a mluvnice / tlačítko Možnosti automatických oprav). Zápis 9,, bude tedy nahrazen za 9:. ProExcel.cz

Automatické nahrazování dvou čárek za dvojtečku Celé je to ale kostrbaté a pomalé. My se proto dnes naučíme, jak posouvat datum a čas oběma směry s využitím maker a vestavěné funkce DateAdd, jež nabízí ve svém prvním parametru řadu možností pro posun jak v kalendáři, tak v čase obecně. Lehce jsem se přitom inspiroval článkem Entering Times Into Cells. V případě datumu nebudeme ošetřovat případ, kdy by překročilo hranici..900, což je na listu nejzazší datum (zatímco ve VBA je jím..00). U času už si ovšem musíme pohlídat překlápění přes půlnoc. A problémů je u něj daleko více. Ve VBA existuje jen jeden datový typ společný datumu a času Date. Při vracení hodnot typu Date zpět do listu můžeme narazit na problémy s formátem buňky. Proto je jistější vracet interní hodnotu pro datum je jím velké celé číslo a pro čas desetinné číslo. Pro algoritmus se tedy hodí matematické a konverzní funkce. Musíme si přitom uvědomit rozdíly mezi funkcemi Int a CInt, a stejně tak přibrzdit při myšlence použít operátor Mod (který se chová jinak, než funkce MOD na listu). ProExcel.cz

8 9 0 8 9 0 8 9 0 8 9 0 8 9 0 Sub DatumPosun(Jednotka As String, Posun As Integer) Dim varpole() As Variant Dim varpolozka As Variant Dim lnghodnota As Long 'prvni parametr pro DateAdd 'yyyy... Year 'q... Quarter 'm... Month 'y... Day of year 'd... Day 'w... Weekday 'ww... Week 'pokud neni vybrana oblast bunek... If TypeName(Selection) <> "Range" Then 'opusteni procedury Exit Sub 'vypnuti prepoctu listu Application.Calculation = xlcalculationmanual 's vyberem... With Selection 'redimenzovani pole ReDim varpole( To.Rows.Count, To.Columns.Count) 'pro kazdou bunku vyberu For i = To UBound(varPole, ) For j = To UBound(varPole, ) 'test na datum If IsDate(.Cells(i, j)) Then 'prepocet datumu lnghodnota = CLng(DateAdd(Jednotka, Posun, _.Cells(i, j))) varpole(i, j) = lnghodnota 'pokud v bunce neni datum Else 'pouze prevzeti obsahu bunky varpole(i, j) =.Cells(i, j) Next j Next i End With 'preklopeni pole zpet do listu Selection = varpole 'zapnuti prepoctu listu Application.Calculation = xlcalculationautomatic ProExcel.cz

8 9 0 8 9 0 8 9 0 8 9 0 8 9 0 Sub CasPosun(Jednotka As String, Posun As Integer) Dim varpole() As Variant Dim varpolozka As Variant Dim dblhodnota As Double 'prvni parametr pro DateAdd 'h... Hour 'n... Minute 's... Second 'pokud neni vybrana oblast bunek... If TypeName(Selection) <> "Range" Then 'opusteni procedury Exit Sub 'vypnuti prepoctu listu Application.Calculation = xlcalculationmanual 's vyberem... With Selection 'redimenzovani pole ReDim varpole( To.Rows.Count, To.Columns.Count) 'pro kazdou bunku vyberu For i = To UBound(varPole, ) For j = To UBound(varPole, ) 'test na cas... Dick Kusleika If IsDate(.Cells(i, j).text) And Not IsDate(.Cells(i, _ j).value) Then 'prepocet casu dblhodnota = Abs(CDbl(DateAdd(Jednotka, Posun, _.Cells(i, j)))) varpole(i, j) = dblhodnota - Int(dblHodnota) Else 'pouze prevzeti obsahu bunky varpole(i, j) =.Cells(i, j) Next j Next i End With 'preklopeni pole zpet do listu Selection = varpole 'zapnuti prepoctu listu Application.Calculation = xlcalculationautomatic ProExcel.cz

Pozn. Jestliže na listu chybí ekvivalent VBA funkce DateAdd, pak list vrací úder v podobě funkce WORKDAY, která pro změnu nemá sestřičku pod VBA. Musíme si ji tedy buď doprogramovat, nebo si ji vypůjčit přes WorksheetFunction.WorkDay (což je lepší varianta, protože případné svátky je také výhodnější generovat na listu, v reálu řekněme plus minus jeden rok vůči aktuálnímu roku). Níže uvedený kód čerpá svátky z pojmenované oblasti buněk definovaný název Svatky (list Výpis svátků z přílohy). ProExcel.cz

8 9 0 8 9 0 8 9 0 8 9 0 8 Sub PracovniDenPosun(Posun As Integer) Dim varpole() As Variant Dim varpolozka As Variant Dim lnghodnota As Long 'pokud neni vybrana oblast bunek... If TypeName(Selection) <> "Range" Then 'opusteni procedury Exit Sub 'vypnuti prepoctu listu Application.Calculation = xlcalculationmanual 's vyberem... With Selection 'redimenzovani pole ReDim varpole( To.Rows.Count, To.Columns.Count) 'pro kazdou bunku vyberu For i = To UBound(varPole, ) For j = To UBound(varPole, ) 'test na datum If IsDate(.Cells(i, j)) Then 'prepocet datumu lnghodnota = _ CLng(WorksheetFunction.WorkDay(.Cells(i, j), _ Posun, Range("Svatky"))) varpole(i, j) = lnghodnota 'pokud v bunce neni datum Else 'pouze prevzeti obsahu bunky varpole(i, j) =.Cells(i, j) Next j Next i End With 'preklopeni pole zpet do listu Selection = varpole 'zapnuti prepoctu listu Application.Calculation = xlcalculationautomatic ProExcel.cz

Nyní již vám nic nebrání zpracovat vlastní varianty procedur a řídit tak posuny pro datum a čas programově. Sub TestDatumCasPosun() Call DatumPosun("ww", ) 'Call CasPosun("h", -) 'Call PracovniDenPosun(-) Ke stažení datum_cas_posun.zip ProExcel.cz