Cambiar el color del fondo de un campo de un subformulario dependiendo del valor de otro campo

Expertos, Buenas tardes

Tengo un subformulario que tiene un campo llamado [Chk List], [Valor especificado] y [Valor Tomado]

Y necesito que el dato ingresado en [Valor tomado] sea comparado contra el valor del campo

[Valor especificado], este campo algunas veces es un rango de datos. Dependiendo del valor se deberá colocar un fondo ROJO si el valor esta fuera del rango o un color VERDE si el valor esta en el rango.

Yo tengo el siguiente código que evalúa esta condición, pero he probado colocarlo en diferente eventos

[Después de actualizar], [Al perder enfoque] ... Etc... Pero el color de fondo no cambia, incluso use Formato condicional y sale perfecto, pero preciso realizar esto con código VBA, ¿alguna idea de como colocar el código?

Select Case Me.txtProcesoAT1
Case Is = "R.p.m. Del motor alta en vacío."
    If MOTValorTomado >= 2320 And txtValorEspecificado <= 2340 Then
       Me.MOTValorTomado.BackColor = vbGreen
      Else
          Me.MOTValorTomado.BackColor = vbRed   
    End If
End Select
End Sub

Usare un Select/Case por que tengo que evaluar cerca de 12 diferentes rangos, solo estoy colocando la evaluación para el primer registro.

La pantalla es más o menos así:

Gracias por los aportes. Y un lindo find e semana para ustedes

1 respuesta

Respuesta
1

Para simular el formato condicional usando vba, mira este artículo que escribí hace poco, a ver si te sirve: http://neckkito.xyz/nck/index.php/ejemplos/13-formularios/270-formato-condicional-con-vba

Lo que no tengo claro es que lo haga en un formulario en vista hoja de datos...

Gracias nuevamente por tu código y tu rápida respuesta, probé y nada : (

Pero algo me llama la atención, si tuviera que hacer manualmente el Formato Condicional al campo y coloco que el valor este en el rango de [2320 - 2340] el color aparece de inmediato, ¿cómo puedo hacer eso mismo en VBA? ¿Por qué al bajar al siguiente registro el rango de datos cambia... como puedo hacer eso?, probé colocando el código en diferentes eventos y no cambia de color... Please, tu ayuda !

Así aparece luego del formato condicional que evalúa solo el primer registro. Nuevamente gracias por tu apoyo, el ejemplo que mandaste es bastante bueno para la siguiente fase que pretendo hacer !, sobre esto ... ¿Qué puedo hacer con el código?

1º/ Como ya te anticipaba, en una formulario en vista hoja de datos no le puedes aplicar un formato condicional al fondo del registro, mayormente, porque no hay fondo...

Sí lo podrías hacer, usando el código de mi ejemplo si usas formularios contínuos o tabulares (que a efectos prácticos son igual que la vista Hoja de datos, pero más versátiles, pues le puedes añadir botones, etiquetas, formatear mejor...)

2º/ Los códigos del ejemplo tienen que ir, sí o sí, en los eventos mencionados, en cualquier otro que los coloques no te van a funcionar.

3º/ En la imagen que muestras como te funciona el condicional, a priori te diría que funciona bien. Si solo le has puesto una condición ( la de que si el valor está entre 2320 - 2340 te lo ponga verde), funciona perfecto. Tienes que poner tantas condiciones como casos tengas, por ejemplo, si no está entre esos valores, debes definirle una regla para ese caso.

4º/ Al usar un formulario Hoja de datos, la única posibilidad para colorear el registro, es colorear todos los campos con el formato condicional, como puedes ver en este ejemplo: http://www.filebig.net/files/4r7wkr5WAp

Fíjate que para los valores que no les defino un formato, salen en "blanco"

Muchas gracias por tu aporte, revisare eso de Formularios tabulares y si tienes razón eso del formato condicional se debe aplicar tantas veces como condiciones tenga lo cual es poco practico para mi. Un saludo y lindo fin de semana ! Como de costumbre tus aportes son bien recibidos

Un placer ayudar. Buen finde.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas