Visual Basic para Aplicaciones - Crear formateo de condicionales de colores con VBA

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de jose
Val: 13
Ha aumentado su posición en 9 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Crear formateo de condicionales de colores con VBA

Publicado por jose (8 intervenciones) el 24/05/2020 10:37:45
Buenas dias,

Tengo un excel con condicionales de colores y que por filtrar han acabado por estropearse.

Me gustaría hacer lo mismo con VBA.

Lo que necesito es algo que seguramente esté más que publicado, pero no hay forma de encontrarlo.

Se trata de como ejemplo 5 columnas y que la columna tiene un valor especifico string "Cerrar" y otros "Abierto". Lo que busco es que cuando la columna 1 contanga "Cerrar" la fila hasta la columna 5 se ponga en rojo, y si es "Abierto" sea del color verde.

Realmente sólo necesito el codigo base o una idea de como hacerlo.

Hize esté código pero no funciona, tampoco tengo mucha idea.

1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
 
   Worksheets("SR").Activate
   Set isect = Application.Intersect(Range("B:B"))
   If isect = "Waiting for Instalation" Then
   Range(Cells(Target.Row, Target.Column), Cells(targert.Row, 5)).Interior.Color = vbGreen
   End If
 
 
End Sub

He adjuntado un excel de los que quiero hacer, realizado con excel. Como digo el problema de utilizar este sistema es que acaba por desmontarse después de muchas copias y en varias ocasiones he tenido que desmontarlo y volver a crearlo. De ahí a que quiero que sea por vba..

Gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Crear formateo de condicionales de colores con VBA

Publicado por Antoni Masana (498 intervenciones) el 25/05/2020 13:55:15
Buenos días,

No me cuadra lo que explicas con el ejemplo.
Primero hablas de "Abrir" y "Cerrar" y en ejemplo pone "Azul" y "Rojo".

Por otra parte la macro que pones se ejecuta no funciona porque lo que hace Application.Intersect es devolver un rango que de coincidencia entre dos o mas rangos y lo que devuelve es un rango y no un string.

Por lo que veo en el ejemplo y por lo que entiendo ya hace lo que quieres.

Por otro lado no entiendo " este sistema es que acaba por desmontarse después de muchas copias" ¿Que clase de copias haces? ¿Que entiendes por "desmontarse"? ¿Como se desmonta una hoja de calculo?

Creo que lo que tienes es un condicional que cuando cambias el contenido de la celda de la columna B dentro de un rango cambia el color de la esta y las 5 celdas adyacentes.

Vale que Excel no es la quinta maravilla del mundo pero es bastante fiable. Con algunas reservas.

Cuéntame más a ver si te puedo ayudar.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose
Val: 13
Ha aumentado su posición en 9 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Crear formateo de condicionales de colores con VBA

Publicado por jose (8 intervenciones) el 25/05/2020 18:46:19
Hola Antoni,

Cuando digo "desmontarse" quiero decir que me ha pasado en varias ocasiones que el formato condicional después de de mucho copiar y pegar las lineas llega un punto que no que tengo que revisar los formatos, acabando por eliminarlos y crearlos de nuevo, por lo que pierdo tiempo.

Primero hablas de "Abrir" y "Cerrar" y en ejemplo pone "Azul" y "Rojo". Esos son sólo ejemplos, el archivo original contiene un combobox con muchos valores y la intención es que cada valor tenga su color

La idea era que a través de vba formatee las líneas cada vez que inicie la página o haga algún cambio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Crear formateo de condicionales de colores con VBA

Publicado por Antoni Masana (498 intervenciones) el 25/05/2020 20:51:58
A ver si es esto lo que necesitas:

1
2
3
4
5
6
7
8
9
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then
        Application.EnableEvents = False
        Range("B" & Target.Row & ":G" & Target.Row).Select
        If UCase(Target.Text) = UCase("Abierto") Then Selection.Interior.Color = vbGreen
        If UCase(Target.Text) = UCase("Cerrado") Then Selection.Interior.Color = vbRed
        Application.EnableEvents = True
    End If
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose
Val: 13
Ha aumentado su posición en 9 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Crear formateo de condicionales de colores con VBA

Publicado por jose (8 intervenciones) el 28/05/2020 10:39:21
Hola Antoni,

Disculpa que haya contestado tarde. Muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar