Dar color a unas celdas dependiendo de su suma

Necesito saber como dar color a unas celdas no contiguas según el resultado de su suma. (Son tres celdas)

Y tengo cuatro grupos de esas tres celdas y no se pueden repetir los números (del 1 al 12). Os dejo una imagen de modelo. Gracias

Respuesta
1

H o l a:

Puedes poner imágenes de cuándo se tiene que poner color.

Y qué colores quieres que se pongan.

Explica la imagen con los ejemplos de las sumas.

Las verticales y horizontales deben sumar 13 y rellenarse de verde.

No debe haber ningún número repetido. En ese cao se reellenarán los repetidos en rojo.

Espero haberme explicado con claridad.

H o l a:

No se ve en cuáles celdas vas a poner los números.

Entonces preparé la macro para que las celdas sean estas:

celdas: 

"B3, D3, F3"
"B3, B9, B15"
"F3, F9, F15"
"B15, D15, F15"


Ahora pon la siguiente macro en los eventos de tu hoja, para que cada vez que modifiques una de las celdas anteriores, la macro se ejecute ene automático:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    Set s1 = Range("B3, D3, F3")
    Set s2 = Range("B3, B9, B15")
    Set s3 = Range("F3, F9, F15")
    Set s4 = Range("B15, D15, F15")
    Set s5 = Union(s1, s2, s3, s4)
    If Not Intersect(Target, s5) Is Nothing Then
        sumar
    End If
End Sub
'
Sub sumar()
'Por.Dante Amor
    Set s1 = Range("B3, D3, F3")
    Set s2 = Range("B3, B9, B15")
    Set s3 = Range("F3, F9, F15")
    Set s4 = Range("B15, D15, F15")
    Set s5 = Union(s1, s2, s3, s4)
    '
    s5.Interior.ColorIndex = xlNone
    For Each c In s5
        For Each c2 In s5
            If c.Address <> c2.Address Then
                If c = c2 Then
                    c.Interior.ColorIndex = 3
                End If
            End If
        Next
    Next
    '
    PonColor s1
    PonColor s2
    PonColor s3
    PonColor s4
End Sub
'
Sub PonColor(celdas)
    If Application.Sum(celdas) = 13 Then
        For Each c In celdas
            If c.Interior.ColorIndex = 3 Then
                rojo = True
            End If
        Next
        If rojo = False Then
            celdas.Interior.ColorIndex = 4
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas