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

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

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í

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

Generátor list nastavení

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

Výběr složek a souborů 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...

Dialog Najít a nahradit

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

Star Trek Do temnoty (infografika na panelu)

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

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

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

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.

Visual Basic for Applications

Slíbená princezna. Univerzální ComboBox

Poslední nenulová číslice faktoriálu

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

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í

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

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

Vlastní formát buňky. Vytvoření nebo odstranění vlastního formátu čísla

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

Tabulka obsluhovaná kódem VBA

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

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

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

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.

Data x Informace x Znalosti

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

'je zobrazen stavový řádek? blnstavovyradekzobrazen = Application.DisplayStatusBar. Excel stavový řádek

Visual Basic for Application

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

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

Dialog Vzhled stránky

VÝŘEZ OBLASTI BUNĚK VZORCEM

MS Excel makra a VBA

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

Tabulkový procesor. Základní rysy

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í

POVRCHOVÝ (OBRYSOVÝ GRAF)

Nápověda Excelu k tématu řazení stojí za starou bačkoru. Velmi strohé informace jsem našel na stránce SharePointu a Excel Services.

10 Algoritmizace Příklad 2 Word 2007/ VBA

8 Makra Příklad 4 Excel 2007

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.

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

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

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

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

Jak na propojení Excelu s Outlookem

Makra. Orámování oblasti

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

Znak Slovy Popis Zdroj Výsledek Formátova cí řetězec v CZ verzi Excelu

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

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

Programujeme v softwaru Statistica

Programovací jazyk Pascal

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

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

3MA481 Propojení Accessu a Excelu David Hach

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

VISUAL BASIC. Práce se soubory

Cvičné příklady Hodina 8 Cvičný 1

VBA Excel. Sub UlozV. v příkladech. Ran. Lenka Forstová. Sub CisloOprava() eric(b. i( Dim Bunka. Bunka.Value = End If. Microsoft Next Bunka End Sub

Porovnání dvou seznamů

CZ.1.07/1.5.00/

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

Tabulka aneb Seznam čili ListObject

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

NPRG030 Programování I, 2017/18 1 / :22:16

NumToStr JEDNOTKA PRO PŘEVODY ČÍSEL, DATUMU A ČASU A JINÝCH DATOVÝCH STRUKTUR NA ŘETĚZCE A ZPĚT. Příručka uživatele a programátora

VBA jako nástroj tvorby vlastních funkcí pro zkvalitnění výstupu v MS Excel

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

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

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

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

Vytvoření nebo odstranění makra Excel

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Povrchový (obrysový graf)

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

Ukázka knihy z internetového knihkupectví

Jako skript se nabízí BAT soubory, VBScript či PowerShell. Zpracovány jsou druhé dva.

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

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

kontrola povinnosti údajů kontrola rozsahu čísel kontrola ové adresy, telefonního čísla nutná součást každého software

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

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Informační a komunikační technologie pro učební obory ME4 a SE4. Makra

DATABÁZE MS ACCESS 2010

Homer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:

Kódy pro formát čísla

LEKCE 3. Uživatelské funkce (UDF) V této lekci najdete:

Konstantní funkce běžný způsob

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

7. Datové typy v Javě

Transkript:

Kdyby peklo nebylo, tak by si ho musel Microsoft vymyslet. Roky říkám uživatelům, že mezery v datumu jsou sice správně typograficky, nicméně Excel je nesnáší a varoval jsem před změnami v nastavení systému Windows. No a nenašel se v Redmondu nějaký dobrodruh, který ve Windows 8/8.1 mezery narval do krátkého formátu datumu jako výchozí? A tak se ozval třeba včera uživatel, že mu nefunguje konverze datumu ve formátu řetězce na skutečné datum typu Date. Windows 8 krátký formát datumu Pokud Windows 8 nemáte, můžete si situaci nasimulovat i ve Windows 7 a starších. Excelplus.NET 1

Excel krátký formát datumu s mezerami Nejjednodušší je samozřejmě v nastavení systému mezery odmazat. Co když si to ale nemůžete dovolit a potřebujete univerzální makro? Po několika hodinách se mi podařilo sepsat vlastní funkci, která jak doufám pokrývá alespoň běžné stavy. Vůbec si ale nedělám iluze o její rychlosti na tisících datumech. Pracuje zkrátka s textovými řetězci a to chvíli trvá. Třeba se vám podaří najít elegantnější řešení. Sub DatumPrevod() Dim strdatum As String Dim dtdatum As Date strdatum = "19.3.2014" 'když selhává 'dtdatum = CDate(strDatum) 'a podobně končí chybou i další 'dtdatum = Format(strDatum, "Short Date") 'dtdatum = DateValue(strDatum) 'dtdatum = Evaluate("=DATEVALUE(""" & strdatum & """)") 'pak je potřeba postupovat jinak... dtdatum = CDate(epfDATUMTEXT(strDatum, "d.m.yyyy")) Excelplus.NET 2

End Sub Function epfdatumtext(strdatumzdroj As String, strdatumzdrojmaska As String, _ Optional strdatumcilmaska As String) As String Dim lnglcid As Long Dim lngret As Long Dim intden As Integer, intmesic As Integer, introk As Integer Dim intpocetd As Integer, intpocetm As Integer, intpocety As Integer Dim strd As String, strm As String, stry As String, strznak As String, _ strtemp As String Dim strdatumcil As String, strdatumformatkratky As String 'jaký je formát pro datum? 'nedostačující informace 'Application.International(...) 'oddělovače ze systému, tj. 'Application.UseSystemSeparators = True If Len(strDatumCilMaska) = Then 'krátký formát datumu ze systému 'LCID... identifikátor oblasti/jazyka 'čeština... 1029 lnglcid = GetUserDefaultLCID() strdatumformatkratky = Space$(16) lngret = GetLocaleInfo(lngLCID, LOCALE_SSHORTDATE, _ strdatumformatkratky, 16) strdatumcilmaska = Left$(strDatumFormatKratky, lngret - 1) End If 'pro každý znak původní masky For i = 1 To Len(strDatumZdrojMaska) 'znak masky strznak = UCase(Mid$(strDatumZdrojMaska, i, 1)) 'odpovídající znak ve zdrojovém datumu strtemp = Mid$(strDatumZdroj, i + j, 1) If (InStr(1, "DMY", strznak) = ) And (IsNumeric(strTemp)) Then strznak = strx j = j + 1 End If 'nabalování číslic do řetězce patřičné skupiny Select Case strznak Case "D" Excelplus.NET 3

strd = strd & strtemp strx = "D" Case "M" strm = strm & strtemp strx = "M" Case "Y" stry = stry & strtemp strx = "Y" End Select Next i 'převod na číselné hodnoty intden = Val(strD) intmesic = Val(strM) introk = Val(strY) strdatumcilmaskatemp = UCase(strDatumCilMaska) 'počty zástupných znaků v cílové masce intpocetd = Len(strDatumCilMaskaTemp) - Len(Replace(strDatumCilMaskaTemp, _ "D", "")) intpocetm = Len(strDatumCilMaskaTemp) - Len(Replace(strDatumCilMaskaTemp, _ "M", "")) intpocety = Len(strDatumCilMaskaTemp) - Len(Replace(strDatumCilMaskaTemp, _ "Y", "")) 'záměna zástupných znaků v cílové masce za skutečné hodnoty strdatumcil = Replace(strDatumCilMaskaTemp, String(intPocetD, "D"), _ Format(intDen, String(intPocetD, "0"))) strdatumcil = Replace(strDatumCil, String(intPocetM, "M"), Format(intMesic, _ String(intPocetM, "0"))) strdatumcil = Replace(strDatumCil, String(intPocetY, "Y"), Right(intRok, _ intpocety)) epfdatumtext = strdatumcil End Function Alespoň několik poznámek: Funkce s pomocí API zjišťuje formát krátkého datumu v systému (API funkce jsou uvedeny pouze v sešitu, zde nejsou vypsány). Funkce nezvládá rozdělené sekvence stejného typu (například yy-yy jako rok 20-14). Funkce jakžtakž zvládá fakticky nesourodé datumy a jejich masky (běžné d.m.yyyy pro 19.3.2014 jistě chápete vy i Excel, ale naučte to vlastní program, kde jednomu d odpovídá jedna nebo dvě číslice ). Excelplus.NET 4

Je zvláštní, že funkce listu DATUMHODN (stejně jako rozpoznávací funkce při ručnímu vstupu do buňky) zblajzne kde co a vrátí datum, zatímco její užití v rámci VBA a Evaluate neprojde (pod WorksheetFunction není dostupná, protože VBA obsahuje vlastní funkci DateVaue). Formát buňky pro datum obsahuje systémové formáty a značí je hvězdičkou. A i když popisek v okně tvrdí, jak jsou provázané se systémem, já tvrdím, že si melou svou bez ohledu na nastavení ve Windows. Funkci je možné zkrátit. V momentě, kdy naplníte proměnné intden, intmesic a introk, aplikujte VBA funkci DateSerial a obdržíte datum typu Date. Já to dotáhnul až do řetězcové podoby odpovídající krátkému formátu datumu. Excel formát buňky pro datum Další ukázky užití výše uvedené funkce: Sub Test_epfDATUMTEXT() Dim strdatum1 As String Dim strdatum2 As String 'zdrojové datum, zdrojová maska datumu, cílová maska datumu strdatum1 = epfdatumtext("19-03 2014", "dd-mm/yyyy", "yy/mm/dd") 'zdrojové datum, zdrojová maska datumu, cílová maska datumu Excelplus.NET 5

'dle krátkého formátu datum v systému Windows strdatum2 = epfdatumtext("19-03 2014", "dd-mm/yyyy") End Sub Excel a krátký formát datumu ve Windows 8 Excel vlastní funkce pro datum zadané textem Sešit ke stažení: excel-datum-kratky-format.zip Excelplus.NET 6