¿Pero toda la columna está pintada de color "rojo" o solamente algunas celdas?
Si es toda la columna, entonces bastará con preguntar si una de las celdas tiene el color "rojo" y entonces eliminar la columna, ¿correcto?
Te anexo la macro, los colores en excel están representados por números, el número 3 representa el color "Rojo".
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
ini = Target.Cells(1, 1).Column
fin = Target.Columns.Count + ini - 1
For c = fin To ini Step -1
If Cells(1, c).Interior.ColorIndex = 3 Then
Application.EnableEvents = False
Columns(c).Delete
Application.EnableEvents = True
End If
Next
End Sub
Si quieres cambiar el color rojo por otro color, revisa los colores en el siguiente enlace
http://dmcritchie.mvps.org/excel/colors.htm
Selecciona el número de color que desees y cambia en la macro el número 3 por el número de color.
La macro se ejecuta cada vez que modificas una celda o varias celdas. Si es como dices que la macro se debe actualizar cada que pegues información, entonces también la macro se ejecutará y revisará los colores.
La macro revisa si la celda de la fila 1 de cada columna que pegaste tiene el color rojo, si es así entonces borra la columna.
Si el color no va a estar en la fila 1, entonces cambia en la macro el número 1 por el número de fila en donde siempre va a existir el rojo.
If Cells(1, c).Interior.ColorIndex = 3 Then
Nota: La macro no se activa si solamente cambias las celdas de color.
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
- Del lado derecho copia la macro
Saludos. Dante Amor