Retornar a un textbox vacío o con datos erróneos

Casi que he comenzado con esto de macros (realmnte he leido bastante, pero la practica me esta motarndo lo poco que he podido similar).

He creado un formulario con 7 textbox, cuyos datos se tranferiran a una base da datos de excel.

He buscado y tratado de que la macro en cada textbox retorne a su origen, en caso que lo datos no se adecúen a lo solicitado.

Por ejemplo he creado una macro para un botón de ingreso de datos y para la sección en que se pregunta por un nombre (para ingresar),

Tengo el siguiente comando

Private Sub ButtNew_Data_Click()Dim New_data As Object       

Set New_data = Sheet1.Range("a2000").End(xlUp)         

New_data.Offset(8, 0).Value = TxtName.Text           

         If Trim(TxtName.Text) = "" Then           

         MsgBox "favor ingrese un nombre válido", vbCritical, "Nombre"

         TxtName.SetFocus           

            Else    

          TxtLastName.SetFocus           

        End If

... End sub

Continúa igual para el resto de texboxs (cada uno con su nombre propio).

El problema es que si dejo en blanco dicho textbox al apretar el click de mouse en otro textbox (digamos donde se colcará el apellido), no me regresa al "textboxName",

¿Hay alguna forma de que si coloco mi mouse en otro lugar me lo envíe al primero sin llenar?

PDATA, he visto que con goto y una etiqueta (pero todos ls datos se ingresan con inputbox), se cumple lo que busco pero me da error.

1 respuesta

Respuesta
1

Por ejemplo, agrega el siguiente evento a tu formulario, cambia txtapellido por el nombre de tu textbox

Private Sub txtapellido_Enter()
    If TxtName = "" Then
        TxtName.SetFocus
        Exit Sub
    End If
End Sub

Lo que hace es verificar el txtname, si está vacío, el cursor se pone en el txtname.

Saludos. Dante Amor

Recuerda valorar la respuesta.

Hola mira las imágenes: el evento no presenta ningún cambio...

Quizá estoy haciendo algo mal, te agradezco tu pronta respuesta.

Pusiste

Private Sub TxtName_Enter()

Y tienes que poner

Private Sub TxtLastName_Enter()

Saludos

Al final de mi respuesta dice: “Es una buena respuesta” y puedes seleccionar una de 3 opciones:

  • Excelente
  • Si
  • No

No olvides valorar la respuesta

¡Gracias!

Ya entendí el evento se da si hay "algo" en txtName, y pasa al del apellido, de lo contrario el cursor no se mueve.

Gracias ahora tengo algunas ideas para que el texto no sea una secuencia ilógica es decir que el nombre, apellido o ciudad no sea algo así como ttttttttt o uuuuuuuu, tengo pensado no permitir más de tres caracteres con consonante sin que haya una vocal intermedio. Por ejemplo Chritian es un nombre aceptable ya que es legible en nuestro tipo de caracteres (excepto el checo),

Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas