Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
UserForm (formuláře) praktické příklady s formuláři v MS Excelu - aneb třeba se Vám bude hodit.
Cílem článku je poskytnout kódy pro práci s UserForm. Co jsem potřeboval při řešení svých Excelovských aplikací ve VBA.
Hodnotu z TextBoxu předá do příslušné buňky.
Range("B10").Value = TextBox1.Text
Range("B11").Value = TextBox1.Value
Jak uzavřít automaticky formulář po vložení hodnoty do ComboBox (Výběrové pole).
Private Sub ComboBox1_Change()
Unload UserForm1
MsgBox ("Pravě byl odstraněn formulář :)")
End Sub
Jak provést automatický výpočet ve formuláři. Využívá metodu Change.
Dim MojeCislo(1 To 2) As Double
TextBox3.Value = TextBox1.Value + TextBox2.Value
hodnota1 = TextBox1.Value
hodnota4 = hodnota1 + hodnota2
TextBox3.Value = TextBox1.Value + TextBox2.Value
TextBox4.Value = TextBox1.Text + TextBox2.Text
MojeCislo(1) = TextBox1.Value
MojeCislo(2) = TextBox2.Value
TextBox5.Value = MojeCislo(1) + MojeCislo(2)
Zkontroluje zda je zadáno číslo. Pokud ne obdrží uživatel informaci (dialogové okno).
Private Sub TextBox2_Change()
If Not IsNumeric(TextBox2.Value) And TextBox2.Value <> vbNullString Then
MsgBox "Není číslo."
TextBox2.Value = vbNullString
End If
End Sub
Úprava kódu pokud se kontroluje více textových polí (textBox)
Private Sub OnlyNumbers()
If TypeName(Me.ActiveControl) = "TextBox" Then
With Me.ActiveControl
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "Tohle není číslo! :)"
.Value = vbNullString
End If
End With
End If
End Sub
Private Sub TextBox1_Change()
OnlyNumbers
End Sub
Private Sub TextBox3_Change()
OnlyNumbers
End Sub
Další příklady v přípravě, případně se pokusím zodpovědět případné dotazy.
Článek byl aktualizován: 19.09.2020 11:06
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: 09.11.12 15:23
Dobrý den, je možné aby se nespustila sub na změnu hodnoty objektu, když se právě vykonává a udělám změnu její hodnoty? Děkuji
Přidáno: 09.11.12 16:00
To Jan: Pozastavit zychytávaní události lze:
Application.EnableEvents = FALSE
vypnuto zachytávaní události
Application.EnableEvents = TRUE
Přidáno: 11.11.12 18:48
Děkuji, ale nefunguje mi to. Zkoušel jsem i na celý formulář při aktivaci, ale jako bych tam tento příkaz nedal. Můžete mi pomoci? děkuji.
Přidáno: 11.11.12 20:35
To Jan: Prosím pošleteukázku na lasak@centrum.cz zkusím se na to podívat.
Přidáno: 12.12.12 11:20
Dobrý den, chtěl bych použít v UserForm komponentu ChartSpace, nevím ale jak na to. Jakákoliv reference na Chart, napr. ChartSpace1.Visible = True vráci chybu 424. Poraďte mi prosím jak začít.
Přidáno: 13.12.13 10:57
Dobrý den, mám dva dotazy: 1) mám vytvořený nějaký formulář ve VBA a chtěl bych, aby se po otevření souboru otevřel jenom ten formulář (tzn. aby se nezobrazovalo prostředí excelu, ale samozřejmě, že bude prostředí excelu např. minimalizovano) 2)mám nasdílený sešit, tak aby excel mohlo používat více uživatelů, ale ve sdíleným sešitě nelze použít kontingenční tabulku ani rozšířený filtr, dálo by se to nějak obejít přes VBA kody. Děkují moc Adam
Přidáno: 05.05.14 15:32
Dobrý den, potřeboval bych pomoct s tímto problémem. Mám UserForm a v něm dva ComboBoxy. Hodnoty do nich zadané potřebuji mezi sebou vynásobit a zapsat do ListBoxu ve stejném formuláři.
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 - 2024 |