¿Cómo hacer una macro para pintar una celda en una columna según valor de otra columna?

¿Puedo consultar por una macro para que me resuelva lo siguiente?:
Tengo las columnas A, B, y C en donde A ingreso números positivos enteros y/o cero también y en B igual, C va una formula que es A/B y aquí empieza el tema: ( y serán 20 filas que cargo cantidades.)

Si el valor de la columna B es > = 7 ( que suceda entonces en la columna C, 3 situaciones de pintar el fondo según el resultado de C ).
Y SINO, si el valor de la columna B es < 7 ( que suceda en la columna C con las mismas
condiciones pero con otros colores porque en B el valor es < 7).

Entonces el resultado de la división de A/B que se ubica en la columna C, a ese valor en C, que se pinte fondo de color según esas dos situaciones de B y luego esas situaciones en C que detallo:
Si B = 0 (entonces la división es imposible a/b) y por lo tanto C no existe, que muestre un guion como resultado (-) fondo violeta en C.

Si A = 0 y B = 0 entonces que muestre un guion (-) fondo blanco en C.
Si B >= 7 entonces
Si C es =0, Rojo
Si C es 0.01 y 0.99, naranja
Si C es >= 1, amarillo

Si B < 7 entonces
Si C es = 0 Violeta
Si C es 0.01 y 0.99, azul
Si C es >=1, celeste

Esto mismo seria para otro bloque también de tres columnas, sea G, H y J.
No se si poner formulas en formato condicional o hacer todo en la macro. Espero que se haya entendido mi consulta, me cuesta expresarme.

1 respuesta

Respuesta
1

Si quieres hacerlo con fórmulas en formato condicional estas son las instrucciones:

Formato condicional para excel 2007, posiciona el cursor en una celda de la columna C.
1. Selecciona del Menú Inicio: Formato Condicional
2. Ahora selecciona: Nueva Regla (Administración de reglas, Nueva Regla)
3. En el cuadro: “Selecciona un tipo de regla”, selecciona: “Utilice una fórmula que determine las celdas para aplicar formato”
4. En el cuadro inferior después de “Dar formato a los valores donde esta fórmula sea verdadera”, escribe la siguiente fórmula:
=Y(B1<7,A1/B1<1)

5. Presiona el botón Formato, selecciona la pestaña “Relleno”, ahora selecciona el color de tu preferencia
6. Aceptar. Aceptar
7. Tendrás qeu agrear una condición para cada fórmula.

8. Copia la celda que ahora tiene el formato condicional a otras celdas, pero dale pegar especial / formatos.

Si quieres hacerlo con macros necesito que me digas el número de color, en VBa (Visual Basic) los colores se identifican con un número. Para saber el número de color que quieres entra al siguiente link y ahí vienen los colores y su respectivo número.

http://dmcritchie.mvps.org/excel/colors.htm

Hola Dam.

Muchas gracias por la rta.

Lo tendría que hacer en excel 2003 usando supongo que usando las macros que abro con alt + F11. Se me paso de avisar.

Y entre al enlace y creo que son esos los colores

Si C es =0, Rojo ( color 3 en VB)
Si C es 0.01 y 0.99, naranja (color 40 en VB)
Si C es >= 1, amarillo ( color 27 en VB)

Si B < 7 entonces
Si C es = 0 Violeta ( color 39 en VB)
Si C es 0.01 y 0.99, azul ( color 37 en VB)
Si C es >=1, celeste (color 20 en VB)

en el excel, en la columna C tengo la formula a/b.

Bueno espero que haya sido de aclaración este mensaje.

Nuevamente muchas gracias Experto.

Javier

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: formato
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub formato()
'por.dam
For i = 1 To Range("C" & Rows.Count).End(xlUp).Row
    If Cells(i, "A") = 0 And Cells(i, "B") = 0 Then
       Cells(i, "C") = "-"
    ElseIf Cells(i, "B") < 7 Then
        Select Case Cells(i, "C")
            Case Is = 0
                Cells(i, "C").Interior.ColorIndex = 39
            Case 0.01 To 0.99
                Cells(i, "C").Interior.ColorIndex = 37
            Case Is >= 1
                Cells(i, "C").Interior.ColorIndex = 20
        End Select
    Else
        Select Case Cells(i, "C")
            Case Is = 0
                Cells(i, "C").Interior.ColorIndex = 3
            Case 0.01 To 0.99
                Cells(i, "C").Interior.ColorIndex = 40
            Case Is >= 1
                Cells(i, "C").Interior.ColorIndex = 27
        End Select
    End If
Next
End Sub

Prueba y me comentas

Saludos. Dam
Si es lo que necesitas.

Dam: Decirte Muchas Gracias es poco. Funcionó a la perfección. Inclusive me sirvió la explicación de paso a paso como insertar el Botón y agregar la macro.

También pude copiar la misma macro y hacer con las otras 3 columnas siguientes y nada más cambie las letras y funciónó.

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas