Como hacer una condición que me regrese la condición en un textbox

Estoy haciendo un form donde me trae datos de una tabla de excel a unos textbox en el cual uno de esos textbox me trae 3 tipos de casos que son preventiva, administrativa y especializada entre otros el cual dependiendo del tipo de palabra que tenga al iniciar el formulario automáticamente en el otro textbox aparecerá un porcentaje que le corresponde.

Lo he intentado hacer de la siguiente forma

Private Sub UserForm_Initialize()
If TextBox14.Text = "PREVENTIVA" Then
TextBox18 = "85%"

end if

Pero no me ha funcionado

Me pueden ayudar que estoy haciendo mal

Respuesta
1

En el evento Initialize no tenés aún el valor del TextBox4... por lo que no es el momento de evaluarlo.

Tiene que ser en la macro que te trae los valores a tus controles... luego de llenar el TextBox4 seguirá la instrucción para evaluar su contenido y enviar según eso el valor al otro textbox.

Si no logras armarlo deja la macro aquí así puedo agregarte las instrucciones según las 3 opciones.

Te recuerdo que esta consulta sigue abierta en espera de tu respuesta. Si no deseas continuar con el tema puedes comentar y cerrarla marcando una valoración.

Sino copia tu código aquí o envíame por correo para ajustarlo.

Sdos!

Lo que pasa que tengo una BD con varias columnas de información, mediante un botón mando llamar un form de búsqueda el cual tecleando el ID o nombre me encuentra y lo filtra en una listBox al seleccionar el nombre de la lista y dar aceptar me abre otro form llamado form_modificar se inicializa el form y llena los text box con información traída de la BD, aquí mi duda es si los textbox se llenan en automático al inicializar el form_ modificar como hago para que en otro textbox mediante una condición ponga un porcentaje según el contenido de un texboxt.

Ejemplo

Al iniciar el form_modificar el textbox1 carga automáticamente la palabra "ADMINISTRATIVA" de la BD, aquí la condición que quiero que haga es la siguiente.

If textbox1 = "ADMINISTRATIVA" THEN

   textbox2 = "25%"

   end if   

¡Saludos! Y gracias por la respuesta

Hay 2 maneras de hacerlo y en ambos casos el resultado será el mismo:

1- Enviando solo un valor al Textbox1 del segundo UF y luego en el evento Activate evaluar ese valor y completar el 2do UF.

Private Sub CommandButton3_Click()   'botón del UF1
'llama al 2do UF enviando valores
UserForm2.TextBox1 = ListBox1.List(ListBox1.ListIndex, 1)
UserForm2.Show
End Sub

Y en el UF2 esta macro:

Private Sub UserForm_Activate()
If TextBox1 = "PREVENTIVA" Then
    TextBox2 = "25%"
ElseIf TextBox1 = "ADMINISTRATIVA" Then
    TextBox2 = "30%"
ElseIf TextBox1 = "ESPECIALIZADA" Then
    TextBox2 = "40%"
End If
End Sub

2- el segundo modo de hacerlo sería evaluar directamente en el UF1 antes de llamar al 2do UF. 

En este modelo utilicé Select solo para mostrar otro bucle ;)

Private Sub CommandButton4_Click()
UserForm2.TextBox1 = ListBox1.List(ListBox1.ListIndex, 1)
Select Case ListBox1.List(ListBox1.ListIndex, 1)
Case Is = "PREVENTIVA"
    UserForm2.TextBox2 = "25%"
Case Is = "ADMINISTRATIVA"
    UserForm2.TextBox2 = "30%"
Case Is = "ESPECIALIZADA"
    UserForm2.TextBox2 = "40%"
End Select
UserForm2.Show
End Sub

Y en este caso ya no necesitas ninguna macro en el segundo UF.

Sdos y no olvides valorar las respuestas.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas