Llamar useform

Hola hermano de nuevo yo, ahora la duda que tengo es esta:
al momento de consultar datos en un textbox y reflejandolos en otros textbox, cuando no lo encuentra me manda a llamar un useform distinto el cual me indica que no lo encontro (me lo recomendaste para que se quitara de forma automatica ya que el msgbox no lo hace), ahora para tambien evitar el command button con el que guardo ese registro que mande a buscar, quisiera llamar otro useform que de un mensaje de bienvenida y se quite automaticamente, se me ocurre que pueda ser con un if pero no logor que quede, te anexo el codigo para ver si me puedes ayudar.
"este es el codigo del textbox que llama los datos"
Private Sub TextBox1_Change()
On Error GoTo NoExiste
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Sheets("hoja1").Select
ActiveCell.Offset(0, 1).Select
TextBox4 = ActiveCell
Sheets("hoja1").Select
ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
Sheets("hoja1").Select
TextBox3 = ActiveCell
Exit Sub
NoExiste:
UserForm1.Show
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox1.SetFocus
End Sub
y en ese mismo textbox quisiera meter el codigo del command button para evitar asi tener que dar clic en ese boton, el codigo es el siguiente
Private Sub CommandButton1_Click()
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("A1").FormulaR1C1 = TextBox2
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("B1").FormulaR1C1 = TextBox3
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("C1").FormulaR1C1 = TextBox4
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("D1").FormulaR1C1 = TextBox1
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox1.SetFocus
como podria crear la condicion para que si se encuentra el valor mande a llamar otro useform que de la bienvenida, pero sin perder el proposito del codigo del command button que me guarda el registro en una hoja diferente.
en espera de tu respuesta te agradezco infinitamente.

1 respuesta

Respuesta
-1
A ver si llegas al guardado del archivo significa que el valor del texbox1 fue encontrado, por lo que luego de correr todo tu proceso de guardado llamas al userform, no veo que necesites un if.
Gracias por tu pronta respuesta hermano.
mira lo que pasa es que en el textbox1, se escanea un numero, este lo busca y cuando lo encuentra en los textbox2, 3 y 4 se refleja lainformacion que corresponde al regsitro guardado, si no lo encuentra llama al userform para informarlo, para guardar el registro uso el command button (el segundo codigo), lo que quiero es que el textbox 1 tenga el codigo desde que lo encuentra hasta que lo guarda evitando asi el command button, espero me de a entender saludos..
De lo que entiendo necesitas que una vez verificado el codigo, si el codigo es encontrado necesitas que tambien se guarde y así evitar una acción de presionar el botón de guardado. Pero cuando haya algun codigo que no es encontrado te bote el mensaje de error que lo muestra otro useerform y claro ese dato ya no necesita ser guardado.
Private Sub TextBox1_Change()
On Error GoTo NoExiste
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Sheets("hoja1").Select
ActiveCell.Offset(0, 1).Select
TextBox4 = ActiveCell
Sheets("hoja1").Select
ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
Sheets("hoja1").Select
TextBox3 = ActiveCell
Private Sub CommandButton1_Click()
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("A1").FormulaR1C1 = TextBox2
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("B1").FormulaR1C1 = TextBox3
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("C1").FormulaR1C1 = TextBox4
ActiveCell.Offset(0, 1).Select
Sheets("hoja2").Select
Range("D1").FormulaR1C1 = TextBox1
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox1.SetFocus
Exit Sub
NoExiste:
UserForm1.Show
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox1.SetFocus
End Sub
Prueba y me avisas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas