Macro para pintar celda según condición

Necesito hacer un macro que me pinte una celda determinada a base del texto de otra celda, no me sirve que sea formato condicional porque luego copiare y necesito que se mantenga el color para sumarlo, y con formato condicional se cambian todos.

La celda que tiene el valor es A16 (semana "xx") y la celda que quiero pintar es B14(tiene horas asignadas en la celda por eso no puedo usar fórmula).

1 respuesta

Respuesta
1

¿Pero de qué color la quieres pintar?

¿Cuáles son las condiciones?

Si en la celda A16 dice:¿?

¿Entonces pinto la celda B14 de qué color?

Pero, si la celda A16 tiene el valor:¿?

¿Entonces qué no pinte la celda B14?

----

Tienes que poner los datos del ejemplo.

¿O simplemente quieres que la macro pinte la celda B14 sin importar lo que diga la celda A16?


Escribe varios ejemplos para entender.

En la celda A16 hay una lista con las semanas de un año, 2016 con 52 semanas, y por mes se asignan 3 o 4, y tengo anidada la celda B12 para que según cambie la lista cambie esta celda de titulo, entonces necesito que en el momento que A16 de la lista se ponga en semana 01(perteneciente mes de enero), que me pinte las celdas B14, C14, D14 de tres colores cualquiera.

Y que si se cambia la lista a semana 05(perteneciente a mes de febrero) que cambie el color de las celdas anteriores a 3 nuevos colores y así sucesivamente.

No se si se entienede, intento subir un archivo para que se entienda más pero no se como.

Gracias de ante mano

Pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A16")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Not IsNumeric(Target.Value) Then Exit Sub
        If Val(Target.Value) > 52 Then Exit Sub
        num = Val(Target.Value)
        Range("B14, C14, D14").Interior.ColorIndex = num
    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. En el panel del lado derecho copia la macro

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

me lo podrías explicar por favor? no me realiza ningún cambio, gracias

Primero, para poner la macro tienes que seguir estos pasos:

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

Ya que pusiste la macro, cada que modifiques la celda A16, en automático las 3 celdas se pintarán de color. Tienes que cambiar el número en la celda A16, por ejemplo escribe el número 5, presiona enter y las celdas se pintarán de azul. Ahora en la celda A16 escribe el número 6, presiona enter y las celdas se pintarán de amarillo.

Si tienes problemas para poner la macro, envíame tu archivo para adaptar la macro.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Fabian Vidal” y el título de esta pregunta.


Si ya lo pudiste resolver, no olvides valorar la respuesta.

Te envío el archivo.

Gracias por tu tiempo y paciencia

Un color diferente para cada celda

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A16")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Not IsNumeric(Target.Value) Then Exit Sub
        If Val(Target.Value) > 52 Then Exit Sub
        num = Val(Target.Value)
        Range("B14").Interior.ColorIndex = num
        Range("C14").Interior.ColorIndex = num + 1
        Range("D14").Interior.ColorIndex = num + 2
    End If
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas