Public f As Boolean Private Sub CommandButton1_Click() If Not f Then Unload Me f = 0 End Sub Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) Range("A1").Value = TextBox1.Value TextBox1.Value = "" End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Cancel = f f = -1 End Sub Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyEscape Or KeyCode = vbKeyTab And Shift = 0 Then f = 0 End Sub Private Sub UserForm_Initialize() TextBox1.SetFocus f = -1 End Sub
[/vba]
Выход из текстбокса по Esc или Tab:
[vba]
Код
Public f As Boolean Private Sub CommandButton1_Click() If Not f Then Unload Me f = 0 End Sub Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) Range("A1").Value = TextBox1.Value TextBox1.Value = "" End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Cancel = f f = -1 End Sub Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyEscape Or KeyCode = vbKeyTab And Shift = 0 Then f = 0 End Sub Private Sub UserForm_Initialize() TextBox1.SetFocus f = -1 End Sub
KuklP, спасибо тебе большое! нашел более лучший способ
[vba]
Код
Private Sub CommandButton1_Click() [a1] = Me.TextBox1 Me.TextBox1.SetFocus: Me.TextBox1 = "" End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then Me.Frame2.TabStop = False: Me.CommandButton1 = True End If End Sub
[/vba]
вот только минус в том что пришлось вставлять флейм, не смог от него избавиться, в моем файле у меня 2 командбутона, пришлось объединить обе кнопки во флейм и сделать в tab ordere по (юзерфому правой кнопкой мыши) бутон1 второй кнопкой после текстбокса, чтобы после выхода из тексбокса фокус сразу упал на текстбокс 1, а не второй
KuklP, спасибо тебе большое! нашел более лучший способ
[vba]
Код
Private Sub CommandButton1_Click() [a1] = Me.TextBox1 Me.TextBox1.SetFocus: Me.TextBox1 = "" End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then Me.Frame2.TabStop = False: Me.CommandButton1 = True End If End Sub
[/vba]
вот только минус в том что пришлось вставлять флейм, не смог от него избавиться, в моем файле у меня 2 командбутона, пришлось объединить обе кнопки во флейм и сделать в tab ordere по (юзерфому правой кнопкой мыши) бутон1 второй кнопкой после текстбокса, чтобы после выхода из тексбокса фокус сразу упал на текстбокс 1, а не второйAsretyq