Inhabilitar/Habilitar textbox de acuerdo a la opción escogida de un combobox

Tengo un problemilla con el formulario "ABM_Movimientos". En el formulario tengo un combobox "tipo_movimiento" que me muestra dos opciones, "Entrada o Salida de un determinado producto" y debajo mismo tengo un textbox al que lo llamo "nro_remision". Lo que quiero es, si le doy click a la opción "Entrada" me habilite el textbox "nro_remision" para realizar la carga de la misma, pero si le doy click a "Salida" que se inhabilite. No sé si me explico muy bien. N.n

Estuve investigando por la web y me topé con algunos ejemplos como esto:

Private Sub tipo_movimiento_Click()
If Me.tipo_movimiento = "Entrada" Then
Me.Nro_remision.Enabled = True
Else
Me.Nro_remision.Enabled = False
End If
End Sub

Esperaré con ansias su ayuda! ;)

4 respuestas

Respuesta
1

Buscando por la web me topé con una intervención que habían hecho Neckkito y 2pl, que me funcionó perfectamente! Y lo copio para el que lo necesite.

Private Sub Form_Current()
Me.Nro_remision.Enabled = False ' desactivado
Me.Nro_remision.Locked = True 'blocked
End Sub

Private Sub tipo_movimiento_AfterUpdate()
If Me.tipo_movimiento.Value = 1 Then
Me.Nro_remision.Enabled = True 'activado
Me.Nro_remision.Locked = False ' desbloqueado
Else
Me.Nro_remision.Enabled = False 'desactivado
Me.Nro_remision.Locked = True 'bloqueado
End If
End Sub

Respuesta
1

Así sin un análisis más extenso lo que si veo es que el Procedimiento debería ser

Private Sub tipo_movimiento_AfterUpdate()

Un saludo >> Jacinto

Hola Jacinto! Muchas gracias por responder. 

Le hice la modificación que sugeriste de esta manera:

Private Sub tipo_movimiento_AfterUpdate()
If Me.tipo_movimiento = "Entrada" Then
Me.Nro_remision.Enabled = True
Else
Me.Nro_remision.Enabled = False
End If
End Sub

Pero me inhabilita el textbox sin importar la opción que presione :( . Puedes decirme qué hago mal?

Lo siguiente>>

1.- Que realmente el texto "Entrada", sea exactamente así. Es decir que no tiene ningún espacio

2.- Tipo_Movimiento, también se llame así y que no sea Tipo Movimiento

Ídem con Nro_remision se llame así.

Por si acaso prueba encerrando los Nombres entre corchetes.

Y además asegura que tienes activado el Procedimiento de Evento >>

Propiedades >> Eventos >> Después de Actualizar [Procedimiento de evento]

Saludos >> Jacinto

He preferido probar el código, y el resultado es el que te adjunto en la figura.

Un saludo >> Jacinto

Respuesta
1

En el evento activate de tu userform debes agregar las siguientes líneas:

Private Sub UserForm_Activate()
    tipo_movimiento.AddItem "Entrada"
    tipo_movimiento.AddItem "Salida"
    Nro_remision.Enabled = False
End Sub

Ahora también agrega el siguiente código a tu userform

Private Sub tipo_movimiento_change()
    Nro_remision.Enabled = False
    Nro_remision.Value = ""
    If Me.tipo_movimiento = "Entrada" Then
        Me.Nro_remision.Enabled = True
    End If
End Sub

El textbox Nro_remision, solamente se habilitará cuando selecciones "Entrada"

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

Respuesta
1

Usalo en el evento change

Private Sub tipo_movimiento_change()
If Me.tipo_movimiento = "Entrada" Then
Me.Nro_remision.Enabled = True
Else
Me.Nro_remision.Enabled = False
End If
End Sub

Si te silve no olvide valorar para cerrar la pregunta 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas