Jak používat (velmi rychlá) VBA makra v MS Office

Znám hodně lidí, typicky různí účetní, ekonomové atp., kteří používají makra v aplikacích MS Office, aniž jim rozumí. Prostě jim někdo ukázal funkci Zaznamenat makro a Spustit makro a oni ji používají. A to je skvělé. Vážně. Dal bych nevím co, aby takovýhle makro rekordér obsahovala každá aplikace a považuji za zásadní nedostatek Google Apps, že ač […]

Jak na uživatelské funkce v Google Sheets (příklad funkce encodeURI)

Už jsem tu psal o vlastních funkcích/vzorcích pro MS Excel, které se od standardních VBA maker (subrutin) liší použitím Function namísto Sub a tím, že návratovou hodnotou je automaticky proměnná uvntiř této funkce, která se jmenuje stejně jako název funkce. Uživatelské vzorce v Google Sheets se od ostatních funkcí neliší vlastně vůbec v ničem, jsou […]

Excel+VBA – vložit jako text

Asi to znáte – kopírujete odněkud text do Excelu a on se tam vloží i s formátováním. Jasně, můžete jít na Home / Paste / Paste special / Insert as Unicode, nebo Home / Paste / Paste values (podle toho, jestli vkládáte text z nějakého dokumentu, či jestli vkládáte hodnoty z nějaké excelové tabulky) – […]

Excel+VBA – reset filtru tabulky při jejím zavření

Jestli pracujete ve firmě ve více lidech na jedné tabulce a používáte filtry, tak se vám už určitě stalo, že jste otevřeli tabulku a byly tam vyfiltrované nějaké položky podle potřeb někoho jiného a vy jste to museli nejdřív zrušit. Já to vyřešil tak, že se u příslušné tabulky při ukládání (případně by šlo při […]

Excel+VBA – Ověření EAN

Potřebujete zjistit, jestli EAN je validní 13místný kód – tedy že má daný řetězec 13 číslic, z toho ta poslední je správný kontrolní checksum? Tahle funkce vám to vyřeší (vrací TRUE/FALSE). Function checkEAN(ean) Dim s As String Dim cs As Integer Dim i As Integer Dim digit As Integer If (TypeName(ean) = „Range“) Then s […]

Excel+VBA – vlastní vzorec pro regulární výrazy

Tohle je asi můj nejpoužívanější Excelový hack – vlastní vzorec pro regulární výrazy. Bez toho se některé věci dělají strašně složitě přes funkce jako NAJÍT, DOSADIT či NAHRADIT, a nebo dokonce vůbec nejdou a člověk se musí uchýlit k jiným nástrojům. Excel přitom regulární výrazy umí, ale jen ve svém VBA. Takže stačí si vytvořit vlastní […]

Excel+VBA – seřazení listů podle abecedy

Následující makro myslím nepotřebuje dalšího komentáře, vše je řečeno titulkem Public Function SortWorksheetsByName() Dim lCount As Long, lCounted As Long, lCount2 As Long Dim lShtLast As Long lShtLast = Sheets.Count For lCount = 1 To lShtLast For lCount2 = lCount To lShtLast If UCase(Sheets(lCount2).Name) < UCase(Sheets(lCount).Name) Then Sheets(lCount2).Move Before:=Sheets(lCount) End If Next lCount2 Next lCount […]

Excel+VBA – rychlé přepínání psaní desetiných čárek

Jak pracuji s různými zdroji dat, mám někdy na vstupu data s desetinou čárkou, jindy s tečkou a při jejich kopírování z/do Excelu tak může dojít ke zničení těchto dat. Např. předpokládejme, že máte standardně nastavený Excel a Windows s českým nastavením regionu, tj. oddělovač tisíců je mezera a desetinný oddělovač je čárka. A teď […]

Excel+VBA – odlišení buněk s vzorcem

Možná to znáte – máte Excelovou tabulku a potřebujete mít sloupec, kde hodnoty počítáte nějakým vzorcem, ale zároveň je někdy potřebujete přepsat fixní hodnotou. Jenže pak se třeba změní kurz či něco podobného a vy potřebujete nějak snadno identifikovat buňky s fixní hodnotou – můžete je dát najít (CTRL+G / Special / Constants), ale to je […]