Salir de un textbox para seleccionar otro

Tengo un textbox donde ingreso unas series con pistola de código de barra, entonces para hacer el proceso mas rapido agregue el procedimiento cancel = true, el problema es que el formulario tiene mas textbox's y al intentar seleccionar alguno de esos(específicamente el textbox2) no me permite hacerlo, tengo el siguiente código el cual me produce error al hacer setfocus, pero lo dejo para que se entienda la idea:
Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)'al presionar enterIf KeyCode = 13 ThenApplication.ScreenUpdating = False'se verifica si el valor es numerico o contiene letrasIf IsNumeric(TextBox3) Thenimei = Val(TextBox3)Elseimei = TextBox3End If'se busca la primera fila librelibre = Range("B65536").End(xlUp).Row + 1'se vuelcan los datos en cada columnaRange("A" & libre) = DateRange("I" & libre) = Val(TextBox1)Range("C" & libre) = TextBox2Range("B" & libre) = imeiRange("D" & libre) = TextBox4Range("E" & libre) = TextBox5Range("H" & libre) = Val(TextBox6)Range("F" & libre) = ActiveSheet.Name'contadorLabel8.Caption = Label8.Caption + 1TextBox3 = ""Cancel = TrueTextBox3.SetFocusApplication.ScreenUpdating = TrueEnd If'al presionar escIf KeyCode = 27 ThenCancel = FalseTextBox2.SetFocusEnd IfEnd Sub
Cualquier ayuda se agradece mucho.

1 Respuesta

Respuesta
1

Espero haber entendido, ¿quieres capturar en el textbox3 y que no se salga del textbox3 hasta que presionas Esc y si presionas Esc que se pare en el textbox2?
Si es correcto lo anterior, esta sería la macro completa
Public me_quiero_salir As BooleanPrivate Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)Cancel = me_quiero_salirEnd Sub Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)'al presionar enterIf KeyCode = 13 Then Application.ScreenUpdating = False 'se verifica si el valor es numerico o contiene letras If IsNumeric(TextBox3) Then imei = Val(TextBox3) Else imei = TextBox3 End If 'se busca la primera fila libre libre = Range("B65536").End(xlUp).Row + 1 'se vuelcan los datos en cada columna Range("A" & libre) = Date Range("I" & libre) = Val(TextBox1) Range("C" & libre) = TextBox2 Range("B" & libre) = imei Range("D" & libre) = TextBox4 Range("E" & libre) = TextBox5 Range("H" & libre) = Val(TextBox6) Range("F" & libre) = ActiveSheet.Name 'contador Label8.Caption = 0 Label8.Caption = Label8.Caption + 1 TextBox3 = "" me_quiero_salir = True TextBox3.SetFocus Application.ScreenUpdating = TrueEnd If'al presionar escIf KeyCode = 27 Thenme_quiero_salir = FalseTextBox2.SetFocusEnd IfEnd Sub
saludos.dam

La pregunta no admite más respuestas

Más respuestas relacionadas