Formato condicional dependiendo del color de otra

A ver si alguien me puede ayudar tengo en Hoja1 una lista en columna B1:B75 con unas siglas y unos colores y en otra Hoja2 en la columna C9:C84 voy poniendo las mismas siglas que en Hoja1 y quiero que en Hoja2 al ser las siglas igual a las que están en Hoja1 ponga el relleno o sombreado de la celda la misma que tenga en Hoja1 en la Hoja2 cuando las va viendo que son iguales a lo que esta puesto en Hoja1.

1 Respuesta

Respuesta
1

Puedes explicarlo con un ejemplo.

Es decir, en la "hoja1", celda "B1" tienes las siglas "ABC" y la celda la tienes de color amarillo.

Ahora capturas en la "hoja2", celda "C9" las siglas "ABC", ¿quieres qué se rellene la celda de color amarillo?

¿Cómo llenaste de amarillo la celda "B1" de la "hoja1", lo llenaste manualmente?

Puedes explicar el ejemplo y la mi duda en ese orden.

Hola en la Hoja1 tengo una lista en la columna B que va desde la B1a la B75 con unas siglas por ejemplo AB o CT o BG etc, y sombreadas a mano es como si fuese la hoja maestra donde pongo que color quiero en las celdas con esas siglas, y ahora en Hoja2 en la Columna C desde C8 a C84 pongo a mano esas siglas que estan en Hoja1 y quiero que ponga el mismo color en la Hoja2 que tienen en la Hoja1 (es como si fuera la muestra) ya que luego tengo mas Hojas y tendría que repetir en las hojas que le diga pero en la misma columna C y igual desde C8 a C84. Gracias

Con formato condicional no es posible tomar un color de otra celda.

Para hacer lo que necesitas, tendría que ser con código VBA insertado en los eventos de las hojas. ¿Quieres qué te ayude con el código?

Te lo agradecería un montón de VBA se un poco pero no se como hacerlo.

¿Te puedo enviar la hoja modelo ha algún sitio?

Sí, envíame tu hoja con algunos ejemplos.

Mi correo [email protected]

Te la envíe por corroe. Gracias

Pon el siguiente código en los eventos de Thisworkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Dim c As Range, f As Range
  If LCase(Sh.Name) <> LCase("Hoja1") Then
    If Not Intersect(Target, Range("C:C, CV:CV")) Is Nothing Then
      For Each c In Intersect(Target, Range("C:C, CV:CV"))
        If c <> "" Then
          Set f = Sheets("Hoja1").Range("B:B").Find(c.Value, , xlValues, xlWhole)
          If Not f Is Nothing Then
            c.Interior.Color = f.Interior.Color
            c.Font.Color = f.Font.Color
          End If
        End If
      Next c
    End If
  End If
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  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 ThisWorkbook
  4. En el panel del lado derecho copia la macro

Cómo funciona.

Selecciona la hoja "L", escribe unas siglas en la columna C o en la columna CV, si las siglas existen en la hoja1 en la columna B, en automático la celda de la hoja "L" toma el color de la celda encontrada.

Nota: Si las siglas en la hoja1 aparecen varias veces, solamente tomará el color de la primera celda encontrada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas