Bloquear textbox hasta no rellenar anterior y saltos

Buenas!
Realizo mis Preguntas, he tratado de buscar respuesta por todo lado pero, la verdad no he encontrado solución alguna.
Las preguntas Tiene relación a esto, hago un formulario de un cuestionario, y deseo que:
Primero, los textbox o combobox estén bloqueados y que, solo se desbloqueen cuando llene el anterior textbox o combobox.
Segundo, que por ejemplo en la pregunta 1 debo responder "SI" o "NO" y que al responder "SI" puedo seguir el cuestionario a la pregunta 2 pero si, respondo "NO" debo hacer un salto a la pregunta 4 entonces los textbox o combobox de las preguntas 2 y 3 queden bloqueados. ¿Cuál seria el código para estas dos incógnitas?
No se si deba enviarte el archivo... O de pronto necesites el código.
Quedo muy pendiente de cualquier ayuda que me puedas proporcionar.

2 respuestas

Respuesta
1
Vamos a ver eso es fácil hacerlo, utilizando la propiedad SetFocus de los Texbox, te explico pongamos que tienes 3 Textbox, 1, 2 y 3. Empezamos en el 1 no existe problema para que introduzcan datos, bien pongamos que el usuario no utiliza el Textbox1 y quiere comenzar a escribir en el Texbox2 pues la instrucción en TexBox2 sería esta:
Private Sub TextBox2_Enter()
If TextBox1.Value="" Then
Texbox1.SetFocus
End If
End Sub
No le dejaría ni pinchar en el TextBox2 hasta que no rellenara algún carácter en el TextBox1. Siguiendo esta norma ya puedes armar tu macro.
De la misma forma con las contestaciones:
If TextBox1.Value="NO" Then
Texbox4.SetFocus
End If
Espero que te lo solucione, ahora solo debes de ir pensando en que momento mandas el foco a un textbox en función de los valores recogidos.
>Un saludo
>Julio
Muchas, muchas gracias...
Con esta aclaración pude realizar con exactitud lo que necesitaba...
Tuve un poco de problema al principio pero al entender la "formula" he podido desarrollarle perfectamente...
De nuevo muchas gracias!
Respuesta
1
Para la primera pregunta:
Suponiendo que tengo:
TextBox1 - TextBox2 - TextBox3
Y que todos mis textbox, por defecto están desactivados (Ver en propiedades de cada Textbox y asigar "Enabled=False")
En el código de cada textbox vas pegando el siguiente código.
Para el textbox1
Private Sub TextBox1_Change()
 If Hoja1.TextBox1.Value <> "" Then
       Hoja1.TextBox2.Enabled = True
   Else
         Hoja1.TextBox2.Enabled = False
  End If
End Sub
PARA EL TEXTBOX1
Private Sub TextBox2_Change()
 If Hoja1.TextBox1.Value <> "" Then
       Hoja1.TextBox3.Enabled = True
   Else
         Hoja1.TextBox3.Enabled = False
  End If
End Sub
Con eso soluciones el primer problema, si tienes más de 3 textbox, tienes que pegar el mismo código para todos y solo ir cambiando el numero de tu textbox.
La segunda respuesta no me quedo claro si el "SI" o el "NO", esta dentro de un textbox, Combobox, o celda de excel.
Perfecto!
En realidad con lo que me diste fue más que suficiente...
También me regalaron una macor con la función .setfocus.. y con lo que tu me diste lo he complementado y he terminado aquel proceso...
Muchas gracias por tu tiempo... :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas