Poner los 0 de un rango en verde

Tengo un error de programación (no lo hago bien)

En la aplicación que suma gastos de cosas por mes y al final del rango suma el total lo que pretendo es que cuando haya hecho la suma si en el rango de los gastos los hay que han quedado en 0 por no haberse consumido me los ponga en verde (los ceros) lo he intentado con el siguiente código que me da error 1004

With rng1 = Hoja7.Range("E6:18")
If Hoja7.Range("E19") <> 0 And Hoja7.Range("rng1").Value = 0 Then
Hoja7.Range("rng1").Font.Color = 244

Este es el mes de Enero con lo cual si funcionase haría los otros 11 uno por mes

La celda E19 es donde esta la suma del mes y de la E6 a la E18 estan las sumas de los gastos

Las sumas irán de la E19 a la P19 y los gastos cada uno donde le toque de la E a la P

También tengo la duda de si en el rango tengo un 0 en vez de poner solo en verde el 0 si me pondrá todo el rango verde

1 respuesta

Respuesta
2

Envíame tu archivo para revisarlo, en el correo me explicas qué necesitas.

mi correo [email protected]

Han quedado en 0 por no haberse consumido me los ponga en verde (los ceros)

Utiliza el formato condicional para esas celdas, si el valor de la celda es 0, que te ponga verde.

- Primero desprotege tu hoja si está protegida.

- Selecciona las celdas en las que quieres aplicar el formato condicial.

- Entra al Menú Inicio, Formato condicional, Nueva regla, Aplicar formato únicamente a las celdas que contengan, Valor de la celda, Igual a, 0

Revisa la imagen:


Si quieres una macro:

Sub formato()
  Dim sh As Worksheet
  Dim c As Range
  Set sh = Sheets("Totales")
  sh.Unprotect "eddyvargas"
  For Each c In sh.Range("E3:P24")
    If c.Value = 0 Then
      c.Interior.Color = vbGreen
    End If
  Next
  sh.Protect "eddyvargas"
End Sub

Hola eso ya lo había probado y no es como yo quiero, lo que quiero es que si la celda de la suma es diferente a 0 , los que se hayan quedado en 0 se pongan verdes , vaya que los 0 de los meses que aún no han sido siguen en negro, se trata de ver los que no has gastado

Con la macro:

Sub formato()
  Dim sh As Worksheet
  Dim c As Range
  Set sh = Sheets("Totales")
  sh.Unprotect "eddyvargas"
  For Each c In sh.Range("E3:P23")
    If c.Value = 0 And sh.Cells(24, c.Column).Value <> 0 Then
      c.Interior.Color = vbGreen
    End If
  Next
  sh.Protect "eddyvargas"
End Sub

---

Con formato condicional, utiliza la siguiente fórmula:

=Y(E$24<>0,E3=0)

Hola. en el formato condicional me da error y lo copio directamente de tu respuesta , si puedes enviame mi archivo que tu tienes en la imagen se ve que a ti te funciona

Gracias

Pero, primero debes seleccionar las celdas donde quieres que aplique.

También debes desproteger la hoja.

Ya te envié el archivo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas