Opičák(9.6.2013 22:36)#013809 
ad 1/
Private Sub CheckBox1_Click()
With UserForm1
If .CheckBox1.Value = True Then
.CheckBox1.Value = False
Else
.CheckBox1.Value = True
End If
End With
End Sub
marjankaj(10.6.2013 1:32)#013810 
Private Sub CheckBox1_Click()
UserForm1.CheckBox1.Value = Not UserForm1.CheckBox1.Value
End Sub
eLCHa(10.6.2013 4:47)#013811
A druhý dotaz, v Userform mám jeden Textbox a tlačítko na potvrzení myší, jak mám udělat aby když napíšu text do Textboxu a zmáčknu Entr došlo k zápisu
co si představujete pod pojmem "k zápisu" - odeslat furmulář?
Události KeyUp, KeyDown, KeyPress (ne v tomto případě)
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
'kód (Call btnSend_Click)
End If
End Sub
Zacatecnik13(10.6.2013 8:46)#013816 
Kurzor v textboxu, napíšu tam text a teď když zmáčknut(stisknu a hned pustí, běžné potvrzení) Entr tak se mě vybere tlačítko na tlačítko potvrzení myší a při dalším zmáčknutí se mě spustí makro, které mám dané pod tímto tlačítkem takže musím dvakrát mačkat Entr. A já chci aby se mě po jednom stisknutí Entru spustilo nějaké makro které mě provede zápis. Makro Sub zapis () mám hotové.
eLCHa(10.6.2013 8:52)#013817
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
Call Zapis
End If
End Sub
Zacatecnik13(10.6.2013 14:31)#013825 
Jo už to funguje, ale nevím proč mě nefunguje funkce SetFocus, tak abych jen psal text a potvrzoval entrem. Při potvrzení provede zápis a přepne se na tlačítko, funkci Set Focus nedělá.Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
Call Zapis
TextBox1.SetFocus
End If
End Sub
eLCHa(11.6.2013 6:10)#013855
Mno bez přílohy absolutně netuším, co tam vymýšlíte za bláznoviny...
TextBox1.SetFocus
vymažte, to je tam na nic
u toho tlačítka nastavte TabStop na False
a Focus vám tam neskočí
Zacatecnik13(11.6.2013 7:53)#013859 
Zkusil jsem to teda vypnout ale při potvrzení mě skočí kurzor z UserForm do listu takže zase musím klikat myší. Já bych to chtěl napsat potvrdit, napsat potvrdit bez myšky. Odborníkům, kteří kroutí hlavou se omlouvám nejsem žádný programátor ale funguje to.Private Sub CommandButton1_Click()
Call Zapis
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
Call Zapis
End If
End Sub
Sub Zapis()
ActiveSheet.Select
Range("B7").Select
TextBox1.Text = Trim(TextBox1.Text)
If TextBox1.Text = "" Then
h = MsgBox("Nebyl zadán název", vbOKOnly + vbExclamation, "Chyba názvu")
Exit Sub
End If
Do
ActiveCell.Offset(1, 0).Select
If ActiveCell = TextBox1.Text Then
h = MsgBox("Družstvo již existuje", vbOKOnly + vbExclamation, "Shoda názvu")
Exit Sub
End If
Loop Until ActiveCell = ""
ActiveCell = TextBox1.Text
If Range("C8") = "I.pokus" Then
Application.EnableEvents = False 'vypne automatického spuštění makra
ActiveCell.Offset(0, 11).FormulaR1C1 = "=RC[-5]+RC[-1]"
Application.EnableEvents = True 'zapnutí automatického spuštění makra
End If
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(1, 0).Select
If Range("C8") = "I.pokus" Then
ActiveCell.Offset(0, 11).Name = "Konec_tisku"
Else
ActiveCell.Offset(-1, 4).Name = "Konec_tisku"
End If
ActiveSheet.PageSetup.PrintArea = "$A$1:Konec_tisku"
ActiveCell.Offset(0, -1).Select
TextBox1.Text = ""
End Sub
eLCHa(11.6.2013 8:10)#013860
Člověče - nebylo by jednodušší se zaregistrovat a dát sem tu přílohu ;))
Takhle jenom střílím a soubor si vytvářet nebudu, ale řekl bych že do listu vám to skočí quli tomuhle
ActiveSheet.Select
zkuste to zakomentovat (nebo smazat), jestli to nepomůže
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(1, 0).Select
by mělo jít nahradit
ActiveCell.Offset(1, 1).Select
Omlouvat se nemusíte - kdybychom se nechtěli chlubit tím, jaxme chytří, tak neodpovíme ;))
---
edit:
vlastně těch selectů je tam tolik, že to do toh listu asi skočí stejně :(
Zacatecnik13(11.6.2013 10:11)#013863 
Jo dík moc už to funguje.