|
Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
kódy pro práci ve VBA...
Sem tam potřebuji rychle nějaký příkaz v Excelu a jelikož není v hlavě tak musím složitěji hledat v nápovědě. Navíc ať neumusím odpovídat stále na stejné dotazy stačí když pošlu odkaz a dotyčný si může požadovaný příkaz najít.
Takže nebudu to okecávat a následuje seznam kódu. Ať slouží.
Sub VBA_Excel_Mrizka_zapnuti()
ActiveWindow.DisplayGridlines = True
End Sub
Sub VBA_Excel_Mrizka_vypnuti()
ActiveWindow.DisplayGridlines = False
End Sub
Sub VBA_Excel_Mrizka_opak()
stav_ve_kterem_je_mrizka = ActiveWindow.DisplayGridlines
ActiveWindow.DisplayGridlines = Not stav_ve_kterem_je_mrizka
End Sub
Sub VBA_Excel_RC_odkazy()
With Application
.ReferenceStyle = xlR1C1
End With
End Sub
Sub VBA_Excel_normalni_odkazy()
With Application
.ReferenceStyle = xlA1
End With
End Sub
Sub VBA_Excel_hypertext_vlozit()
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"http://office.lasakovi.com", TextToDisplay:="office.lasakovi.com"
End Sub
Sub VBA_Excel_komentar_vloz()
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:="Pavel Lasák:" & Chr(10) & "Komentář"
End Sub
Sub VBA_Excel_komentar_zobraz()
ActiveCell.Comment.Visible = True
End Sub
Sub VBA_Excel_komentar_skryt()
ActiveCell.Comment.Visible = False
End Sub
Sub VBA_Excel_komentar_zmena_stavu()
stav_ve_kterem_je_komentar = ActiveCell.Comment.Visible
' odpověď střízlivý nedostanete :)
ActiveCell.Comment.Visible = Not stav_ve_kterem_je_komentar
End Sub
Sub VBA_Excel_komentar_smaz()
Selection.ClearComments
End Sub
Function OdstarnDiakr(source As Variant) As String
Const cz As String = "áÁčČďĎéÉěĚëËíÍňŇóÓöÖřŘšŠťŤúÚůŮüÜýÝžŽ"
Const en As String = "aAcCdDeEeEeEiInNoOoOrRsStTuUuUuUyYzZ"
Dim TmpS As String
Dim OutS As String
Dim I As Integer
OutS = ""
If IsNull(source) Or source = “” Then
OdstarnDiakr = ""
Else
For I = 1 To Len(source)
TmpS = Mid(source, I, 1)
If InStr(1, cz, TmpS, vbBinaryCompare) > 0 Then TmpS = Mid(en, InStr(1, cz, TmpS, vbBinaryCompare), 1)
OutS = OutS & TmpS
Next I
OdstarnDiakr = OutS
End If
End Function
Sub VBA_Excel_Odstraneni_Listu()
ActiveWindow.SelectedSheets.Delete
End Sub
Sub VBA_Excel_Odstraneni_Listu_bez_dotazu()
Application.DisplayAlerts = False
'a Excel nedá dotaz zda opravdu chcete smazat... Pozor na to ...
ActiveWindow.SelectedSheets.Delete
End Sub
Chybí Vám nějaký kód? Zanechte vzkaz v komentáři. Pokusím se doplnit (nebo doplní některý z čtenářů...).
Článek byl aktualizován: 19.09.2020 11:07
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Přidáno: 19.01.11 14:08
Ve formuláři mám několik textboxů. Během zpracování formuláře je potřebuji vyprázdnit. Nechci v makru otrocky psát: Vymaž textbox1, 2 ... Jde to v cyklu?
Přidáno: 25.01.11 16:32
Lze naprogramovat funkci typu "když je splněna podmínka (např A1=A2) tak ulož do C1 hodnotu x, pokud splněná není ulož do D1 hodnotu y" ? diky
Přidáno: 25.01.11 19:07
To DoE: Použil bych funkci KDYŽ v buňce C1 i D1 (což je nejednoduši) nebo to naprogramovat ve VBA (což je složitější)
Přidáno: 31.01.11 09:48
Potřebuji makro nahrazující podmíněné formátování. Potřebuji cca 12 podmínek a Excel do 2007 má jenom 6. Mám Makro které podle hodnoty čísla zabarví stejnou buňku podle škály. Ale potřeboval bych aby se zabarvila jiná buňka než ta ve které je daná hodnota. Nejlépe aby se tam s formátem vepsalo i číslo. Přéklad mohu poslat mailem. Děkuji za pomoc. michal@manisovi.cz
Přidáno: 02.02.11 20:10
To Michal: Osobně bych použil dva (tři) sloupce.
Přidáno: 07.02.11 15:19
Dobrý den. Prosím o radu. Po vyhledáni poslední vyplnené bunky v slopci : Set a = Columns(ActiveCell.Column) Set lastcell = a.Cells(a.Cells.Count).End(xlUp) lastcell.Offset(1, 0).Activate potrebuji doplnit součet hodnot v danem sloupci. Jak na to? Dekuji za odpoved.
Přidáno: 07.02.11 19:15
To Marián: Doplnit do buňky funkci SUMA.
Přidáno: 21.02.11 15:10
Dobrý den, chtěl bych vytvořit tlačítka na čísla 1 až 9, abych nemusel používat klávesnici. Postup by byl takový, že bych kurzorem označil jakékoliv buňky na listu a po zmáčknutí tlačítka by se do buněk zapsalo číslo. Jde něco takového vytvořit? Děkuji.
Přidáno: 21.02.11 16:16
To Pavel: Potřebujete to z důvodu dotykového displeje? Jelikož toto bych řešil, programem ve windows, který po kliku na položku do které lze zapisovat zobrazí SW klávesnici.
Přidáno: 21.02.11 18:19
Ne, mám normální notebook, ale přijde mi jednodužší než ťukat čísla přes klávesnici, tak na to mít tlačítka. Je to možné udělat přes VBA nebo přes makro v MS Excel?
Přidáno: 22.02.11 16:03
To Pavel: Přes VBA makro to lze udělat. Vlož tlačítko ovladacího prvku ActiveX. Pojmenuj 1. Do kódu pro stisk tlačítka vlož:
ActiveCell.FormulaR1C1 = "1
Přidáno: 22.02.11 19:37
Díky za radu. Bohužel tento příkaz pouze vloží číslo do posledně označené buňky. Já bych potřeboval, aby se číslo vepsalo do všech označených buněk.
Přidáno: 23.02.11 15:58
To Pavel: Cyklem do označených buněk doplnit požadované číslo.
Přidáno: 09.03.11 15:38
Dobrý den, jak nastavím spouštění formuláře po otevření sešitu? Diky.
Přidáno: 09.03.11 17:53
To Petr:
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Předpokládám, že formulář máš pod názvem UserForm1
Přidáno: 10.03.11 16:10
Děkuji, funguje to. Formulář se otevře ale hodnoty v něm nejsou aktivní. Součastně spouštím i makro které "naleje" hodnoty do formuláře. Je třeba formulář po otevření aktivovat?
Přidáno: 10.03.11 18:20
To Petr: Těžko říct, nevím jak je formulář vytvořen.
Přidáno: 11.03.11 11:38
Už jsem toto vyřešil a to tak že formulář otevírám až po startu makra. Ve formuláři mám popisky Label1 až label9. Dá se je naplňovat ve smyčce a jak?
Přidáno: 11.03.11 20:23
To Petr: cyklem
For I = 1 To 10
...
Next I
Přidáno: 11.03.11 20:38
Toto je mi jasné. Jak mám zapsat do smyčky definici popisků? For I = 1 To 10 UserForm1.LabelI = něco Next I tak to nefunguje
Přidáno: 12.03.11 06:07
To Petr: nutno dat i do zavorek např.: userform1.textbox(i).value = format(0,"#,##0.00)
Přidáno: 13.03.11 09:38
Sub mk1() Dim i Dim a For i = 1 To 5 a = a + 1 UserForm1.TextBox(i).Value = CInt(a) Next i End Sub Ve výsledku je chyba kompilace. Method or data member not found. Proč?
Přidáno: 13.03.11 14:28
Dim i As Integer ? index = CInt(txt.Tag) ? Zrovna jsem u PC bez Excelu.
Přidáno: 13.03.11 18:07
"Dim a, i as integer" Výsledek je stejný
Přidáno: 14.03.11 15:58
A při změně definice CInt? CInt(txt.Tag)
Přidáno: 14.03.11 19:00
Ta samá chyba. Kompilátor označi právě TextBox, tož právě v definici textboxu je třeba hledat chybu. A ta nápověda je na p...
Přidáno: 14.03.11 21:38
tj. nápověda od MS ;-)
Přidáno: 15.03.11 19:08
Tak tedy řešení je následující. Dim a As Integer For a = 1 To 10 UserForm1("TextBox" & CStr(a)).Value = "Stránka " & CStr(a) Next a Děkuji všem zúčastněným
Přidáno: 16.03.11 16:55
To Petr: Gratuluji. Osobně než nápovědu Microsoftu používám strejdu googla. Jen se blbě ověřuje kód pokud člověk nemá na PC Excel.
Přidáno: 22.03.11 08:41
Dobry den, potrebuju napsat makro, ktere otevre soubor z adresare, ve kterem se nachazi vychozi soubor (ten, v kterem je makro umistene). Nevim jak napsat relativni cestu k souboru.
Přidáno: 22.03.11 19:03
To Janek: Tento odkaz Vám nepomůže? http://groups.google.com/group/microsoft.public.excel.programming/msg/0f8e66f9e6f73cc4?pli=1
Přidáno: 08.04.11 01:29
Dobry den, neviem si dat rady s makrom, ktore by mi malo zmenit farby bunky v pripade, ze je na zaciatku riadku pismo napr. Arial bold 10. Dakujem za pomoc. s pozdravom.
Přidáno: 19.04.11 16:42
Dobrý den, existuje v makru jednoduchá funkce na konverzí datumu/času na juliánské datum? Děkuji za radu
Přidáno: 19.04.11 20:13
To Petr: Popsáno je na stránkách microsoftu http://office.microsoft.com/en-us/excel-help/insert-julian-dates-HP003056114.aspx přímo za použití klasických funkcí.
Přidáno: 02.05.11 11:08
Dobrý den, jak lze prosím zapsat kód, který by změnil název souboru na můj vlastní název (názvem myslím v levé části nahoře kde je např. Microsoft Excel - Sešt1. A já bych chtěl např. jen "Můj sešit" nebo i třeba Microsoft Excel - Můj sešit. 2.dotaz Líbí se mi, že některé procedury píší v dolním levém panelu co procedura dělá. Např.že zpracovává x tý řádek databáze a kolikátý je z celkového počtu nebo jen píše, že právě upravuje formát apod. Jak se toto programuje? Díky moc.
Přidáno: 02.05.11 20:09
1) Název se změní tím že sešit uložíte:
ActiveWorkbook.SaveAs Filename:= "C:\Muj-sesit.xlsm"
2) do stavového řádku lze zapsat příkazem
Application.Statusbar = "Text ve stavovém řádku"
Přidáno: 03.05.11 11:11
Díky za odpověď na vlastní název souboru. Ale já nemyslel ukládání nového souboru, ale jen, aby se v levé části nahoře zobrazoval můj definovaný název bez ohledu na skutečný název souboru. Např. soubor se bude jmenovat "Database.xls", ale vlevo nahoře budu chtít vidět text "Aplikace xy verze 1.0 pro planovani" nebo cokoliv jiného, třeba i v kombinaci skutečného názvu souboru + můj vlastní text. Díky
Přidáno: 03.05.11 17:07
To Bob: ThisWorkbook.Application.Caption = "office.lasakovi.com" funguje v MS Excel. Kód pro MS Access bohužel nevím z hlavy.
Přidáno: 18.05.11 08:18
Dobrý den, poraďte mi prosím jak spolehlivě dostanu data z DDE serveru do makra. Nalinkoval jsem buňky sešitu na DDE server, ale jednou za den komunikace spadne. Děkuji, Petr
Přidáno: 18.05.11 09:56
Dobrý den, potřeboval bych makro které mi vypíše absah všech vyplněných buněk do txt souboru, a jednotlívé záznamy oddělí středníkem.
Přidáno: 18.05.11 19:02
To Petr: tohle bohužel nevím, možná poradí někdo z čtenářů.
Přidáno: 18.05.11 19:03
To Jakub: Nešlo by soubor uložit jako *.csv a pak přejmenovat (export umí automaticky oddělovat středníkem)? V buňkách jsou pouze data, nebo i vzorce (vzorec jako číslo nebo daný vzorec)? desetinná čísla jsou oddělena čárkou nebo tečkou? Každý řádek bude mít odpovídající řádek v txt souboru, nebo všechna data v jednom "nekonečném" řádku?
Přidáno: 31.05.11 19:36
Dobry den, mam dotaz jestli lze vlozit pomoci maker do nazvu ukladaneho exceloveho sesitu hodnotu z urcite bunky. Napriklad na listu "a" mam v bunce "A1" hodnotu "test" - tak by se ukladany soubor jmenoval "test.xlsx". Jde mi o to abych mohl hodnoty v bunce menit a ukladat tak soubor pod ruznymi nazvy pomoci nejakeho cyklu. diky
Přidáno: 31.05.11 21:20
To awr: Jasně jde
ID_nazev = Worksheets("List1").Cells(1, 1)
UkladanySoubor = "C:\data\" & ID_nazev & ".xlsx"
Přidáno: 31.05.11 22:07
Diky moc, uz to slape!
Přidáno: 01.07.11 16:32
Dobrý den, mam napragramované automaticke ukladani a potreboval bych nastavit do Filename ulozeni do mista ulozeni puvodniho souboru.
Přidáno: 01.07.11 18:05
To Fík: Tj. Zjistit adresář v kterém se aktuální soubor nachází nebo kompletní cestu?
Přidáno: 04.07.11 13:00
Zjistit adresář, ve kterém se aktuální soubor nachází by mi stačilo, dál už bych to udělal sám
Přidáno: 07.07.11 12:46
Zdravím všechny ve spolek řeším věc, u které si ani nejsem zcela jist, že to lze vyřešit : ) ... Potreboval bych vykoumat makro script, který by v podstatě dělal následující. Někde na disku je soubor s údaji o výkonnosti zaměstnanců (linka1 měla produktivitu 93% v týdnu1, z toho 2% ztrátovost, tyden 2 až třeba 20) a teďka to makro by mělo umět na zmáčknutí natáhnout tyto data do sebe, a potom z nich vytvořit grafy ve formátu graf 1 : linka1 OsaY=procenta, osaX=daný týden, s tím, že pro každou linku to uděla vlastní graf, ideálně na samostatný list, nebo stránku tak, aby se to pak dalo rovnou tisknout
Přidáno: 07.07.11 20:32
To Fik:
Adresar = ThisWorkbook.Path
Přidáno: 08.07.11 14:25
Dobrý den, prosim o radu, ve FRM zadám datum do Textboxu1 8/7 (zobrazí 8.7.2011) v Textoxu2 potřebuji aby dle data TXB1 byl ihned zobrazen automaticky den ( pátek ). Nevím zda to vůbec jde.
Přidáno: 08.07.11 20:45
To PavelD: Stačí změnit formát a ten zobrazit.
Range("A2").Select
ActiveCell.NumberFormat = "DDDD"
TextBox2.ControlSource = "A2"
Přidáno: 10.08.11 12:32
Dobrý den, potřeboval bych najít pomocí VBA soubor (edgecam.exe), který se nachází vždy na C:\Program Files\ ..... nějaký jeden adresář ..... \CAM\EdgeCam.exe . Pokud máte nějaké návrhy na elegantní řešení , tak vám budu moc vděčen.
Přidáno: 18.08.11 11:33
Dobrý den, mám formulář s několika comboboxy, které se vnázvu lyší pouze číslem. Potřeboval bych jejich hodnoty zapsat do tabulky a nechce se mi to zadávat pro každý zvlášť, proto jsem zkusil napsat cyklus, ale nějak mi to nechce fungovat. For i = 1 To 6 If (cboPolozka & (i)) = "" = False Then (cboPolozka & (i)).Value = ActiveCell.Value End If i = i + 1 Next Děkuji
Přidáno: 14.09.11 11:49
Dobrý den, potřebuji si spouštět skript každou minutu. Poraďte mi prosím jak se dá tohle v VBA jednoduše zařídit. Diky, Petr
Přidáno: 15.09.11 16:42
To Petr:
Sub Spust1minuta()
Application.OnTime Now + TimeValue("00:01:00"), "MujSkript"
End Sub
Popsáno v článku http://office.lasakovi.com/excel/vba-triky/vba-excel-ukonceni-makrem/
Přidáno: 26.09.11 15:26
OK, diky. Petr
Přidáno: 30.09.11 22:05
Zdravím všechny koumáky,prosím poraďte Pomocí DDE se mění data v buňce A1. Prosím poraďte jak je dostat do do aktivní buňky( ta se posouvá), tak aby se se změnou v A1 ( ta starší buňka bývale aktivní ) nepřepisovala. Moc díky!
Přidáno: 19.10.11 08:55
Ahoj vložil jsem si makro pro "hod kostkou" (randbetween), ale potřebuji, aby se mi tato hodnota nepřepočítávala, přičemž přepočet ostatních buněk musí fungovat i nadále. Díky za radu.
Přidáno: 19.10.11 16:24
To Stano: S DDE nepracuji, takže odpověď nevím, ale možná někdo s čtenářů poradí.
Přidáno: 19.10.11 16:26
To Tomáš: Co dát randbetwenn do podmínky if.
Přidáno: 20.10.11 08:40
Mám na mysli vytvoření tlačítka, po jehož stisknutí se mi do aktuální buňky vyplní hod kostkou. Pak si označím další buňku, provedu totéž, ale chci, aby se mi předchozí hod nenahradil novým náhodným hodem. Pokud to lze pomocí if, prosím konkretizovat (nejsem moc maker znalý). Děkuji pěkně
Přidáno: 09.11.11 18:22
Pěkný večer potřeboval bych radu jak provest součet hodnot ve sloupci když na první buňku sčítané oblasti ve sloupci(nikdy nesčítám celý sloupec) mě dostane podmínka a poslední buňka je poslední hodnota ve sloupci. Výsledný součet potřebuji zapsat do jiného sloupce a jiného řádku. Díky za návrhy
Přidáno: 23.11.11 17:03
Zdravím, jsem makrový analfabet a potřeboval bych poradit. Pro automatické zkoušení slovíček používám toto makro:
Sub Makro1()
If Range("r3") <> "Zkoušení slovíček a konverzace pouze ručně." Then
'napiš Zkoušení slovíček a konverzace pouze ručně. do buňky f3 pro zastavení kódu
Application.OnTime Now + TimeValue("00:00:10"), "my_Procedure"
Else
MsgBox "To už vše umíš že končíš? Nebyl bych si tím tak jistý.", vbOKOnly + vbInformation, "Chceš opradu skončit automatické zkoušení?"
End If
End Sub
Vše v pohodě funguje, ale já bych potřeboval měnit čas cyklu v tomto případě 10 sekund třeba na 15 s. Doposud si vždy přepíšu čas v makru, ale potřeboval bych někde v listě mít proměnné číslo(čas), které by se měnilo automaticky v makru. Děkuji, případně sešit mohu poslat.
Přidáno: 23.11.11 23:11
To Zdeněk:
MujCas = "12:12:12"
y = TimeValue(MujCas)
MsgBox y
Přidáno: 27.11.11 16:01
Díky, ale jak jsem psal, jsem VBA analfabet (makro mi kdysi dělal známý) a já nevím, jak to mám do toho svého makra zadat :(
Přidáno: 27.11.11 19:41
To Zdeněk: Pošlete soubor na lasak@centrum.cz pokusím se doplnit.
Přidáno: 14.12.11 11:59
Lze zamknout jen list. Potřebuji editovat sdílený sešit několika uživateli na "SVÝCH" listech, ke kterým by se dostali přes heslo. Nebo byste použili jiný způsob. Děkuji
Přidáno: 14.12.11 17:30
To Luboš Novák: Lze v Excel 2007, 2010, karta Revize - zamknout list. A zvolíte si zda s heslem nebo bez hesla.
Přidáno: 04.01.12 14:13
ahoj, mám dotaz.. mám v excelu asi 70 listů a potřebuju, aby jeden záznam makra fungoval po spuštění na všechny listy najednou, abych nemusela jednotlivě překlikávat a spouštět makro.. jak na to? díky!
Přidáno: 04.01.12 16:02
To Claire: Vložit makro do ThisWorkbook nebo ho vytvořit v modulu. A doplnit jej o výběr všech listu.
Sheets(Array("List1", "List2", "List3")).Select
Přidáno: 04.01.12 21:03
Zdravím, nějak nemůžu zkloubit dohromady funkci průměr a když. Udělal jsem nějaké měsíční vyhodnocení v buňce B1:B12. V buňce B13 mám vzorec =průměr(B1:B12). Pokud budu mít všechny měsíce vyplněny nějakou hodnotou, tak průměr funguje. Jenže když budu mít vyplněný třeba pouze leden 2012, tak celoroční průměr není pravdivý, protože data z února - prosince mít zatím nebudu. Potřeboval bych, aby vzorec v B13 ignoroval buňky s nulou. Děkuji za odpověď a přeji hezký večer.
Přidáno: 04.01.12 21:34
Tak už jsem to zjistil co tam napíšu za vzorec :). =AVERAGEIF(B1:B12;"<>0"). Já se vzorec snažil stále napsat česky a nějak my to nešlo. Je možné, že vzorec lze napsat asi i jiným způsobem. Ale i tak děkuji. Vaše stránky, kde čerpám hodně informací a návodů jsou super. Ještě jednou díky.
Přidáno: 05.01.12 16:39
To Zdeněk: Gratuluji a děkuji. Jak se říka, nejrychlejší pomoc najdeš na konci své paže :)
Přidáno: 24.02.12 13:29
Dobrý den, mohl byste mi poradit jak ve VBA operovat (tj číst a zapisovat) s jednotlivými bity v proměnné typu integer? Diky, Petr
Přidáno: 24.02.12 21:52
To Petr_N: Přečíst údaj z buňky http://office.lasakovi.com/excel/vba-listy-bunky/precti-udaj-do-bunky-excel-vba/ a přes textové funkce najít požadovaný znak http://office.lasakovi.com/excel/funkce/ms-excel-funkce-textove/ jen je nutno ve VBA použít anglické názvy funkcí http://office.lasakovi.com/excel/funkce/ms-excel-funkce-cz-en/
Přidáno: 12.03.12 19:43
Dobrý den, někdo se tu v diskuzi ptal, jak udělat, aby se makro spouštělo opakovaně za určitý časový interval. Řeším ten samý problém. Dané řešení však provede makro MujSkript jen jednou:
Sub Spust1minuta()
Application.OnTime Now + TimeValue("00:01:00"),_ "MujSkript"
End Sub
Kód jsem upravil na:
Sub Spust5sekund()
Application.OnTime Now + TimeValue("00:00:05"),_ "Spust5sekund"
Call MujSkript
End Sub
Kód funguje, akorát bych potřeboval poradit, jak ho z prostředí listu vypnout, např. jiným tlačítkem a ne Ctrl+Break. Ještě bych se chtěl zeptat, jak časový interval opakování v sekundách zadat v buňce listu, aby se nemusel zadávat ve VBA kódu. Předem děkuji za odpověď!
Přidáno: 13.03.12 19:39
To Tomáš Sláma:
Čas z buňky:
MujCas = "12:12:12"
y = TimeValue(MujCas)
MsgBox y
třeba přes jinou klávesu
Sub DemoOnKey()
Application.OnKey "{TAB}", "MojeZprava"
End Sub
Sub MojeZprava()
MsgBox "Stisk Tabelatoru"
End Sub
nebo doplnit o funkci if then, které bude kontrolovat stisk tlačítka
Přidáno: 28.03.12 12:44
Ahoj, prosim Ta, vytvoril som uz nejaky formular, ale potreboval by som kontrolu zadanych udajov. Priklad: Mam 2 polia: meno a priezvisko. Tieto dve hodnoty zapisujem do buniek A1 a A2 po kliknuti na OK. Ale chcel by som pridat podmienku, ze ak je prazdne pole Meno alebo Priezvisko, tak vyhodi msgbox A opat sa vratim do formulara, kde ale osatnu vypisane vsetky predosle udaje a mozem doplnit chybajuce pole. Dufam, ze som to napisal zrozumitelne :)
Přidáno: 28.03.12 20:41
TO Lukáš: to je na článek, zkusím připravit a publikovat
Přidáno: 30.03.12 08:28
Ahoj opat. :) Predosly problem som uz vygooglil, len som tam pridal if a end sub ak nastane taky problem. Skor ma zaujima iny problem a to praca s premennymi. Mas formular ktory vyplnis, stlacis tlacitko OK a tieto vyplnene polia sa ti zapisu do buniek. Ale je tam dalsie tlacitko (Vytvor subor) ktore spusta export buniek do .txt suboru. Problem je, ze pokial vyplnim formular a nedam OK, ale rovno Vytvor subor tak neviem skontrolovat, ci v tych poliach vo formulari je nieco zadane alebo nie. Opat zavolat OK tlacitko nemozem, pretoze su v nom kontroly na prazdne polia... Proste by som potreboval vytiahnut nejaku hodnotu z jedneho sub a vediet s nou pracovat v druhom. Snad je to normalne napisane:)
Přidáno: 31.03.12 20:30
Dobrý den, potřeboval bych radu ohledně automatického filtru. Vím, že pokud chci zobrazit více položek ve filtru musím použít pole Array, ale nevím jak do něj dostat hodnoty těch položek když předem nevím kolik jich budu zobrazovat. Položky co se nacházejí v tom filtru mám na jiném listu a jejich zobrazení bych určoval hodnotou ano/ne ve vedlejší buňce. Děkuji za nějakou radu.
Přidáno: 04.04.12 13:33
Filtroval bych to přes kriteriální tabulku kterou bych vytvořil na základě vstupních položek a jejich logické hodnotě přes fci když.
Přidáno: 04.04.12 18:53
to Kuvap: tomu vůbec nerozumím.
Přidáno: 06.04.12 13:29
to Kuvap: Tak už jsem to udělal, dík za radu.
Přidáno: 10.05.12 23:49
Prosím vbs scriptem pustit Outlook. Nějak se mi to nedaří. Set object.Outlook = WScript.createObject("Outlook.Application") Outlook.Visible = true Outlook.Add End If ?? Děkuji ??
Přidáno: 11.05.12 15:12
To František: Takhle funguje?
Shell ("OUTLOOK")
Přidáno: 27.06.12 11:35
Ahoj všichni, mám makro, které mi ukládá kopie souborů. Nicméně při každém provedení uložení kopie mě to otravuje s hláskou Upozornění týkající se osobních údajů: .... Lze v Makru nejak nastavit, aby se mi tato upozorneni neukazovala? Diky, Vlada
Přidáno: 27.06.12 16:34
To Vláďa: Vypínat pomocí:
Application.DisplayAlerts
Přidáno: 28.06.12 09:00
Díky:)
Přidáno: 08.08.12 11:14
Dobrý deň, potrebujem meniť napr. frame (obsah) pri kliknuti na ponuku tlacitok. neviete mi poradit? Dakujem
Přidáno: 08.08.12 17:10
To Andrej: Nerozumím dotazu.
Přidáno: 09.08.12 10:15
Potrebujem v jednom formulari pri preklikavani tlacitiek (napriklad v menu) aby sa na pravej strane menil obsah (dalsia ponuka tlacitok).
Přidáno: 09.08.12 11:50
Dobrý den. Při ukládání sešitu s podporou maker (xlsm) do sešitu,který makra nepodporuje (xlsx) mi vždy vyskočí hláška " Následující funkce nelze uložit v sešitech bez maker: Projekt v jazyce VB. Chcete-li pokračovat .... klikněte na tlačítko Ano." Existuje nějaký příkaz, který mi automaticky vybere "Ano" a uloží ho? Děkuji. Karel
Přidáno: 09.08.12 20:42
To Andrej: Změnit tlačítku vlastnost visible na false (zneiditelnit), True (zviditelnit)
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton3.Visible = True
End Sub
Přidáno: 09.08.12 20:49
To Karel: Nezobrazovat dialogová okna a nepřekreslovat:
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
vlastní uložení
ActiveWorkbook.SaveAs Filename:= NewFile, .....
a nezapomenout opět zapnout
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
PS: Soubor se uloží bez maker.
Přidáno: 09.08.12 21:22
Zdravím a děkuji za rychlou odpověď. Pořád se mi ale nedaří. Když chci převést sešit s podporou maker na sešit bez maker, stále tam vyskakuje ta potvrzovací tabulka a před samotným uložením ji musím potvrdit. Tomu jsem se chtěl právě vyhnout a mít tam automaticky "Ano". Mám Office 2010 (pokud to má na to vliv). Jen pro kontrolu, jestli to mám dobře: Sub prevod() With Application .ScreenUpdating = False .EnableEvents = False End With ActiveWorkbook.SaveAs Filename:= _ "C:\pokus.xlsx", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=True With Application .ScreenUpdating = True .EnableEvents = True End With End Sub Děkuji za vaši trpělivost. Karel
Přidáno: 10.08.12 21:04
To Karel: Nejprve vybrat listy (tj. nebudou se ukládat makra) a ty pak uložit.
Sheets("List1").Select
ActiveSheet.Copy
pro pokusy bych raději volil ukládat jako kopii SaveCopyAs, a pak zavřít vytvořený list Close.
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Sheets("List1").Select
ActiveSheet.Copy
ActiveWorkbook.SaveCopyAs Filename:="D:\test\test.xlsx"
ActiveWorkbook.Close (False)
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Přidáno: 14.08.12 21:22
Super! Děkuji. Funguje to. Karel
Přidáno: 22.08.12 11:33
Dobrý den. Dá se napsat makro, které odstraní všechna makra na listech (včetně ThisWorkbook) a ve všech modulech? Na netu se mi nepodařilo nic takového najít. Díky. Karel
Přidáno: 22.08.12 11:39
Ještě doplním: když mám v centru zabezpečení maker zatrženo "Důvěřovat přístupu k objektovému modelu projektu VBA", tak mi to jde (makro na odstranění maker), ale bez toho zatržení ne. Karel
Přidáno: 22.08.12 17:00
To Karel: Uložit jako xlsx (tento soubor neumí ukládat makra a tak se automaticky odstraní).
Přidáno: 25.09.12 13:33
Mám na několika stránkách hyperlinkové odkazy, které bych někdy potřebavl při splnění podmínek zobrazit na jiné stránce. Vše ok jen nevím jak aktovovat buňku s hypertextovým odkazem?? Ta funguje jen na dvouklik myši, ale nevím jakým příkazem VBA ji aktivovat?? :-( dík
Přidáno: 25.09.12 16:27
to pejsek: Pomocí VBA potřebujete spustit hypertextový odkaz?
Přidáno: 25.09.12 17:34
Jj. jde o otevření obrázků (přes hypertextový odkaz)na základě nějaké podmínky v excelolvské tabulce
Přidáno: 27.09.12 07:12
To pejsek: Pro pomínku použít IF viz: http://office.lasakovi.com/excel/vba-teorie-zaklady/if-then-elseif-else-podminka-excel-vba/ Pro hyperlink v B3 (odkaz na office.lasakovi.com :) je kód pro spuštění
Range("B3").Select
Selection.Hyperlinks(1).Follow NewWindow:=False
Nebo pro otevření Wordového dokumentu tento odkaz http://smallbusiness.chron.com/open-word-document-excel-using-vba-40430.html
Přidáno: 27.09.12 18:31
Jak jednoduché :-) funguje to, dííííík. Pejsek
Přidáno: 27.09.12 21:25
To Pejsek: Rádo se stalo.
Přidáno: 06.10.12 22:56
Dobrý den, Jsem začátečník vba excel. Hci vytvořit formulář s dvěma rámečky. Každý rámeček má 8 zaškrtávací políčka (OB). Potřebuji napsat jednoduchý kód pro formulář, aby se při označení kteréhokoliv OB v rámečku č.1 spustil rámeček č.2. Nechci psát 8x Sub OB_Podklad1_Click() Koef = Material(1) Jmena FR_Podklad_druh.Visible = True End Sub Sub OB_Podklad2_Click() Koef = Material(2) Jmena FR_Podklad_druh.Visible = True End Sub atd. Nevím jak použít cykly pro proceduru sub. Můžete mi poradit?
Přidáno: 07.10.12 08:26
To Mojmír: Využít cyklus For Next http://office.lasakovi.com/excel/vba-teorie-zaklady/excel-vba-for-next-cykly/ - pokud pošlete ukázku pokusím se doplnit.
Přidáno: 05.11.12 13:38
Dobrý den, ráda bych si nechala poradit, jak vytvořit makro nebo nějaký jiný fígl, který by mi pomohl vytvořit seznam listů nebo něco podobného. Mám v excel souboru asi 50 listů s různými daty a potřebovala bych poradit, jak si zjednodušit přecházení mezi nimi. Sice je mám seřazené dle abecedy,ale při zapisování dat musím hledat daný list. Šlo by nějak udělat, aby například na každém listě byl seznam nebo nějaký odkaz? snad je mi trošku rozumět. Předem děkuji za radu.
Přidáno: 27.11.12 11:10
Prosím potřebuji pomoci co mám kde nastavit v Excelu 2007 abych dostal funkci do listu. Nemám kategorii vlastní při vkládání funkce. dle obr. na http://office.lasakovi.com/excel/vba/ms-excel-vba-uvod/ (excel prostě ty moje funkce nezná :-( a hlásí #NÁZEV?)
Přidáno: 27.11.12 12:45
dobrý den, potřeboval bych pomoci s kódem funkce níže. zkoušel jsem asi všechno, co se dalo, hledal na internetu, ale nic nefungovalo. snad mi pomůžete. bližší info v komentářích. Function QWERT(a As Range, e As Range) As String ' do argumentu "a" zadám odkaz na nějakou buňku, třeba A1 ' do argumentu "e" zadám také odkaz na nějakou buňku (prázdnou buňku), třeba B1 Dim b As Date ' proměnná pro převedené datum z argumentu "a" Dim c As Date ' proměnná pro zítra Dim d As Date ' proměnná pro včera b = DateSerial(Year(a), Month(a), Day(a)) ' zde se datum převede datum z argumentu "a" c = b + 1 ' vypočítá se hodnota zítra d = b - 1 ' vypočítá se hodnota včera e.Value = c ' zde chci, aby se mi vypočtené datum zítra zobrazilo v buňce B1, kterou zastupuje argument "e", ' ale toto bohužel nefunguje - s tímto potřebuji pomoct QWERT = d 'zobrazí se hodnota včera End Function
Přidáno: 27.11.12 22:27
To Pavel: Máte funkci vloženou v modulu? Deklarovanou jako funcke (funcion)?
Přidáno: 06.01.13 15:32
Dobrý den, potřeboval bych pomoci s jedním kódem. Potřeboval bych vyhledat data (zadaná do texboxu v Excelovském formuláři) v databázi Access. Konkrétněji: Vyhledávám ID v tabulce tblCtenari. Pokud tam bude, zobrazím formulář Nabídka a do texboxu vypíšu Jméno a Příjmení daného čenáře. Pokud tam nebude, zobrazí se MsgBox s danou informací. Děkuji za jakoukoliv radu. P.S. Omlouvám se pokud jsem dotaz napsal na špatné místo.
Přidáno: 06.01.13 16:32
To Lukáš: Můžete poslat ukázku?
Přidáno: 06.01.13 17:25
Tady je:
Private Sub btPrihlaseniPrihlasit_Click()
Dim DBS As Database
Dim rst As Recordset
Set DBS = OpenDatabase(ThisWorkbook.Path & "\Data_Knihovna.mdb")
Set rst = DBS.OpenRecordset("tblCtenari", dbOpenDynaset)
rst.FindFirst "ID_C = txbPrihlaseniID.value"
If rst.NoMatch = True Then
MsgBox "Čtenář nebyl nalezen! Prosím zaregistrujte se kliknutím na tlačítko Nový čtenář."
Else
txbNabidkaJmeno = rst.Fields("Jmeno").Value
txbNabidkaPrijmeni = rst.Fields("Prijmeni").Value
Nabidka.Show
End If
rst.Close
Set rst = Nothing
Set DBS = Nothing
End Sub
Je mi jasné, že tohle asi fungovat nebude. Předělával jsem to teď z "testovací" verze kdy jsem zkoušel vyhledávat konkrétní údaj přípo napsaný v kódu. I to ale nejde.
Přidáno: 08.01.13 16:41
Jinak bych potřeboval pomoci ještě s jednou věcí: Jde nějak udělat aby mi combobox zobrazoval hodnotu, ale jeho vlastnost Value měla jinou hodnotu? V praxi: Aby mi combobox zobrazoval např. žánr, ale hodnota by byla jeho ID?
Přidáno: 08.01.13 22:38
To Lukáš: Snad pomůže http://www.webermarking.com/images/odbc_settings_excel.pdf nebo http://www.teachexcel.com/excel-help/excel-how-to.php?i=124725
Přidáno: 09.01.13 14:45
Popravdě řečeno ani moc ne, ale děkuji alespoň za snahu. Zkusím to nějak vyřešit. Jinak, ten druhý problém už jsem vyřešil :)
Přidáno: 19.01.13 17:48
Dobrý den, můžete mi prosím poradit ? V souboru data.xlsx zapisuji hodnotu z textového pole pomocí VBA do druhého souboru zaznamy.xlsx pomocí vašeho kódu : [code] Workbooks.Open Filename:="zaznamy.xlsx" For Radek = 1 To 65536 If Cells(Radek, 1) = "" Then PrvniPrazdnyRadek = Radek Exit For End If Next Radek ActiveWorkbook.Worksheets("List1").Cells(PrvniPrazdnyRadek + 1, 1).Value = TextBox1.Text End Sub [/code] šlo by nějak udělat aby se soubor zaznamy.xlsx při zapisování hodnoty nezobrazoval ? Děkuji Milan
Přidáno: 21.01.13 10:27
Proboha co jsem to napsal za blábol. To je tak když text xkrát opravujete a pak si to po sobě nepřečtete. :-). Prosím nereagujte, já jsem našel odpověď na můj zmatený dotaz zde na jiné stránce.
Přidáno: 21.01.13 16:55
To Milan Nehasil: OK.
Přidáno: 20.02.13 17:57
Potřebuji poradit, mám tabulku ve které je sloupec (F15:F180) s různými údaji např. LVR18, LVR16, HFR16, HFR20, LVRN9 atd. Potřebuji vytvořit makro, ktré by dokázalo spočítat v celém sloupci "F" celkový počet LVR a HFR a výsledek napsat do dvou buněk třeba B1 a B2. Díky za pomoc.
Přidáno: 28.03.13 14:35
Měl bych jeden dotaz. V UserForm mám vytvořeno více TextBoxů. Do prvního uživatel vloží čas a do druhého interval a potřebuji vyplnit dalších 30 textboxů časy jak jdou po sobě podle zadaného intervalu. Zatím to mám napsané pro každý textbox samostatně a snažil jsem se to vytvořit pomocí cyklu ale nezjistil jsem jak napsat cyklus tak, aby se při každém opakování změnilo číslo textboxu. Jde to nějakým způsobem, případně jak jinak to vyřešit elegantně vyřešit? Díky za radu
Přidáno: 24.04.13 10:45
Dobrý den, potřeboval bych poradit s automatickým filtrem. Mám zamknutý list se seznam a automatickým filtrem (nelze seřazovat, ale filtrovat ano). Pomocí makra je možné přidávat do seznamu na konec nové záznamy. Když je ale pomocí filtru zobrazena jen část seznamu, nový záznam se zapíše na další řádkem pod posledním záznamem filtrovaného seznamu (ikdyž je obsazený). Chtěl jsem zadat podmínku, pokud bude filtr obsahovat určitá kritéria, aby se vynula (ale filtr se nemůže odebrat kvůli zamknutému listu). Nevíte prosím, jak zapsat vynulování kritérií pokud nějaká jsou? Děkuji, Jakub
Přidáno: 05.11.13 11:39
Dobrý den, potřebovala bych pomoct s vytvořením makra. Makra vůbec neumím a potřebuji to do své DP práce pro usnadnění dalších výpočtů. Makro by mělo po spuštění pomocí tlačítka najít max. a min. hodnotu ve vybraném sloupci a následně v rozmezí těchto hodnot po kroku př.0,001 vypsat hodnoty do sloupečku pod sebou. S následným automatickým načtením a spuštěním makra pro výpočet histogramu. Díky Dana
Přidáno: 12.12.13 14:33
Dobrý den, chtěl bych se zeptat, zdá náhodou někdo nevíte, 1)jak obejít uzamčení (nefunkčnost) kontingenční tabulky ve sdíleným sešitě. Tzn. buď by mi fungovala kont.tabulka nebo rozšířený filtr. 2) mám nějaký VBA formulář a chtěl bych, aby po otevření souboru se otevřel pouze ten formulář (tzn. bez toho, aby na pozadí bylo vidět prostředí excellu, samozřejmě, že jako takový excel by byl někde minimalizovan) Děkují moc Adam
Přidáno: 19.01.14 17:45
Ahoj, potřeboval bych radu. Mám Excel tabulku čítající ca 45000 záznamu (řádku) a stále přidávám. Ve sloupci C mám identifikační čísla která nejdou za sebou (třeba 7051825 a další je až 7192285). Nevím jak mám najít řádek s nejbližší nižší hodnotu oproti té kterou mám v TextBoxu a za něj vložit nový kam se pak vloží data z formuláře. Díky moc Honza
Přidáno: 26.05.14 15:10
Dobrý den, mohl byste mi prosím poradit script. Mám excel provázaný na dost velké úrovni, jeden list kam se vyplňují data, následně se sčítají, součet jde do dalšího listu, kde toto další sečtené číslo jde opět do jiného listu. Jednitlivé řádky mají označení 1 a 2 mimo sum řádků. Jak mám napsat makro, aby se mi v jednom listu sčítali řádky s 1 nebo 2, které jsou v jiném listu ? Díky moc. Martin
Přidáno: 09.07.14 15:37
Dobrý den, prosím dokázal by jste mi poradit mám tabulku, kde v horní části jsou přes vzorečky anglické zkratky dnů je to jako kalendář a mění se každý rok, potřebuji přes VBA aby se vždy označil barevně sloupec víkendu. Pokud bude potřeba pro lepší vysvětlení mohu poslat danou tabulku. Mám tohle to,ale nefunguje mi to, někde je chyba. Range("D14:AH" & 17 + Pocet).Select Selection.Interior.ColorIndex = xlNone Mazej Range("C14").Select 'Označení "So" a "Ne" Do ActiveCell.Offset(0, 1).Select If ActiveCell = "celkem" Or ActiveCell = "" Then Range("A1").Select End End If If (Application.WorksheetFunction.Weekday(ActiveCell, 2) = 6) Or (Application.WorksheetFunction.Weekday(ActiveCell, 2) = 7) Then ActiveCell.Offset(0, 0).Select Selection.Offset(RowOffset:=0, ColumnOffset:=0).Resize(Rowsize:=Pocet + 4, columnsize:=1).Select Selection.Interior.ColorIndex = 36 End If Loop End Sub Možná komunikace na mail: johny-n@seznam.cz Moc Vám děkuji za rady Honza
Přidáno: 11.07.14 09:26
To Honza R.: cez funkciu POZVYHLEDAT / MATCH. --Kód však bude jednoduchší a rýchlejší, keď sa riadky budú zadávať vždy na koniec záznamov (aj keď identifikačné čísla nebudú zotriedené).
Přidáno: 11.07.14 13:34
To Honza R.: (pokračovanie) ... Je však pravda aj to, že v zotriedenom zozname sa cez uvedenú funkciu rýchlejšie hľadá.
Přidáno: 22.07.14 07:40
To Johny: Neviem presne čo znamená "horní část", ale podľa pôvodného kódu stačí zadať do 14.riadku dátum + vyplniť vpravo + je možné zmeniť aj Formát buniek/Vlastní/Typ na "ddd" pre zobrazenie dňa v týždni + potom použiť tento mierne upravený kód: -- Sub Oznac_So_Ne()
Pocet = 0
Range("D14:AH" & 17 + Pocet).Select
Selection.Interior.ColorIndex = xlNone 'Mazej
Range("C14").Select 'Označení "So" a "Ne"
Do
ActiveCell.Offset(0, 1).Select
If ActiveCell = "celkem" Or ActiveCell = "" Then
Range("A1").Select
End
End If
If (WorksheetFunction.Weekday(ActiveCell, 2) = 6) Or (WorksheetFunction.Weekday(ActiveCell, 2) = 7) Then
ActiveCell.Resize(Rowsize:=Pocet + 4, columnsize:=1).Interior.ColorIndex = 36
End If
Loop
End Sub
Přidáno: 22.07.14 08:31
To Martin: nie celkom rozumiem otázke, ale toto by mohlo pomôcť:For sh = 1 To Sheets.Count
spolu = WorksheetFunction.Sum(Sheets(sh).Range("A1:C1")) ' súčet na liste v 1 riadku
celkom = celkom + spolu
Next sh
Přidáno: 10.08.14 13:51
Dobrý den, prosím o pomoc s následujícím problémem. Mám několik stránek v listu pod sebou. Každá stránka obsahuje stejné záhlaví a zápatí. Pod záhlavím mám ve dvou řádcích text, který potřebuji mít na každé stránce pod záhlavím. Problém je, že pokud potřebuji zkopírovat z jiného excelu hodnoty do buněk, tak na druhém listu již text pod záhlavím nezůstane a přepíšou se buňky. Dá se to nějak pevně bloknout proti přepsání? Děkuji moc
Přidáno: 26.01.16 15:17
Dobrý den, potřeboval bych poradit jak vypnout potvrzovací hlášku pro stažení souboru pomocí hyperlink viz (For i = 1 To Worksheets("cis_cas").Range("D1").Value strVyslurl = "https://" & strURLbasic & strTypExp & "?" & "z=T&f=TABULKA&ds=&vyhltext=&zo=N&pvo=" & strIDPVO & "&udIdent=&verze=-1&nahled=N&sp=N&nuid=&zs=&skupId=&pvoch=&filtr=G~F_M~F_Z~F_R~F_P~_S~_null_null_&pvokc=&katalog=31032&&c=" & Worksheets("cis_cas").Range("B" & i + 1).Value & "&evo=v57516_!_VUZEMI97-100-101hal-nezj_1&str=v19&kodjaz=203&expPoznData=N&expPoznTexty=A&nasexp=s&kodyklice=N&origurl=https%3A%2F%2Fvdb.czso.cz%2Fvdbvo2%2Ffaces%2Fcs%2Findex.jsf%3Fpage%3Dvystup-objekt%26pvo%3DCIZ01%26zo%3DN%26z%3DT%26f%3DTABULKA%26verze%3D-1%26nahled%3DN%26sp%3DN%26filtr%3DG~F_M~F_Z~F_R~F_P~_S~_null_null_%26katalog%3D31032%26evo%3Dv57516_!_VUZEMI97-100-101hal-nezj_1%26c%3D" & Worksheets("cis_cas").Range("B" & i + 1).Value strCas = Worksheets("cis_cas").Range("B" & i + 1).Value ActiveWorkbook.FollowHyperlink Address:=strVyslurl, NewWindow:=False, AddHistory:=False ActiveWorkbook.SaveAs Filename:=strCesta & strNazevsouboru & strTypExp & "_" & strCas & ".xls", FileFormat:=xlExcel8, CreateBackup:=False ActiveWindow.Close Next i) Samozřejmě mám nastaveno Appl.screenUp = False Appl.displA=False Zkoušel jsem podle microsoftu vypnout pomocí přidání klíče do registru Win, ale to nepomohlo :( Už jsme z toho zoufalý. Zkoušel jsem i Sendkeys tab a enter, ale to mi posouvalo a odentrovalo text v zdrojovém kódu místo odklepnutí hlášky...
Přidáno: 26.01.16 15:25
Moc se omlouvám, nevšiml jsme si poznámky pod komentem :( Tedy znovu a lépe:
For i = 1 To Worksheets("cis_cas").Range("D1").Value
strVyslurl = "https://" & strURLbasic & strTypExp & "?" & "z=T&f=TABULKA&ds=&vyhltext=&zo=N&pvo=" & strIDPVO & "&udIdent=&verze=-1&nahled=N&sp=N&nuid=&zs=&skupId=&pvoch=&filtr=G~F_M~F_Z~F_R~F_P~_S~_null_null_&pvokc=&katalog=31032&&c=" & Worksheets("cis_cas").Range("B" & i + 1).Value & "&evo=v57516_!_VUZEMI97-100-101hal-nezj_1&str=v19&kodjaz=203&expPoznData=N&expPoznTexty=A&nasexp=s&kodyklice=N&origurl=https%3A%2F%2Fvdb.czso.cz%2Fvdbvo2%2Ffaces%2Fcs%2Findex.jsf%3Fpage%3Dvystup-objekt%26pvo%3DCIZ01%26zo%3DN%26z%3DT%26f%3DTABULKA%26verze%3D-1%26nahled%3DN%26sp%3DN%26filtr%3DG~F_M~F_Z~F_R~F_P~_S~_null_null_%26katalog%3D31032%26evo%3Dv57516_!_VUZEMI97-100-101hal-nezj_1%26c%3D" & Worksheets("cis_cas").Range("B" & i + 1).Value
strCas = Worksheets("cis_cas").Range("B" & i + 1).Value
ActiveWorkbook.FollowHyperlink Address:=strVyslurl, NewWindow:=False, AddHistory:=False
ActiveWorkbook.SaveAs Filename:=strCesta & strNazevsouboru & strTypExp & "_" & strCas & ".xls", FileFormat:=xlExcel8, CreateBackup:=False
ActiveWindow.Close
Next i
Přidáno: 23.03.16 12:40
Dobrý den, mám makro, které mi jednoduše přidává upozornění na narozeniny do Outlooku. Já bych ty narozeniny ale potřebovala přidávat do sdíleného kalendáře od kolegy. Přikládám makro a prosím o radu, jak ho změnit. Děkuji Sub Button47_Click() Const olAppointmentItem As Long = 1 Dim OLApp As Object Dim OLNS As Object Dim OLAppointment As Object aCellRow = ActiveCell.Row On Error Resume Next Set OLApp = GetObject(, "Outlook.Application") If OLApp Is Nothing Then Set OLApp = CreateObject("Outlook.Application") On Error GoTo 0 If Not OLApp Is Nothing Then Set OLNS = OLApp.GetNamespace("MAPI") OLNS.Logon Set OLAppointment = OLApp.CreateItem(olAppointmentItem) OLAppointment.Subject = " volat " & Cells(aCellRow, 1).Value & ", " & Cells(aCellRow, 2).Value & " " & Cells(aCellRow, 3).Value & ", " & Cells(aCellRow, 4).Value & " (" & Cells(aCellRow, 5).Value & ") " & Cells(aCellRow, 6).Value OLAppointment.Start = DateAdd("n", 450, Cells(aCellRow, 7).Value) OLAppointment.End = DateAdd("n", 480, Cells(aCellRow, 7).Value) OLAppointment.ReminderMinutesBeforeStart = "15" OLAppointment.Save Set OLAppointment = Nothing Set OLNS = Nothing Set OLApp = Nothing End If End Sub
Přidáno: 23.03.16 13:10
Ještě abych to upřesnila, tak přidávám ty narozeniny ze seznamu v excelu do Outlooku. Teď jsem ještě našla, že by to makro asi šlo přidat rovnou do Outlooku, ale nevím si s tím rady:-/ Díky
Přidáno: 06.11.16 09:33
Dobrý den, mám tabulku na majetek cca za 20 let (cca 3.500 řádků) a když udělám vyřazení tohoto majetku, tak se mi ze sloupce. "A" (majetek) přesune do sloupce "B" (vyřazený majetek) a já bych potřeboval, aby se mi celý či určitá část tohoto řádku kde vznikl vyřazený majetek, přesunul do jiného listu a tam se řádil pod sebou v pořadí, v kterém byl vyřazen. Je to z toho důvodu, abych nemusel jednotlivé řádky ručně kopírovat při vyřazení majetku... Nevím jestli to je vůbec možné. Děkuji za odpověď.
Přidáno: 09.11.16 07:40
To Vašek: -- samozrejme je to možné aj cez VBA, ale ja by som radšej použil filtrovanie alebo kontingenčnú tabuľku.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2021 |