Macro ocultar celdas según su color

Buenas tardes:

Tengo un archivo en excel 2007 la cual tiene una tabla desde la celda k9 hasta la o54, pero no clasifica la información según su valor sino su color, es decir el valor de la celda está en si su color es rojo, amarillo, verde o blanco. Deseo crear una macro que verifique cada una de las celdas del rango K9:O9 y me diga si todas las celdas tienen el color verde o blanco para ocultar la fila completa, pero si alguna de ellas tiene otro color (como roja o amarilla) la fila entera no debe ser ocultada.

Después de esto, la idea es que verifique el rango K10:O10, la K11:O11 y así sucesivamente hasta llegar a la fila 56. Agradezco cualquier ayuda al respecto.

1 Respuesta

Respuesta
1

Instrucciones para ejecutar macro1. Abre tu hoja de excel2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F113. En el menú elige Insertar / Módulo4. En el panel del lado derecho copia la macro5. Para ejecutarla presiona F5

Sub ocultafila()'Oculta fila'por.damcol = [K9].Columnoculta = 0For i = 9 To Range("K" & Rows.Count).End(xlUp).Row    'For j = col To col + 5    If Cells(i, "K").Interior.ColorIndex = 4 And _       Cells(i, "L").Interior.ColorIndex = 4 And _       Cells(i, "M").Interior.ColorIndex = 4 And _       Cells(i, "N").Interior.ColorIndex = 4 And _       Cells(i, "O").Interior.ColorIndex = 4 Or _       Cells(i, "K").Interior.ColorIndex = -4142 And _       Cells(i, "L").Interior.ColorIndex = -4142 And _       Cells(i, "M").Interior.ColorIndex = -4142 And _       Cells(i, "N").Interior.ColorIndex = -4142 And _       Cells(i, "O").Interior.ColorIndex = -4142 Then        'oculta = 1        Cells(i, 1).EntireRow.Hidden = True    End IfNextEnd Sub

Indicaciones, los colores de celda, en excel, se identifican con un número, cada color tiene un número diferente, estoy considerando que el verde que estás ocupando le corresponde el 4, y que para el blanco, supongo que te refieres a que no tiene color, para la celda sin color le corresponde el -4142, como podrás observar en la macro, estos número están en las líneas del código.

Para identificar con certeza cuál número tienes en tus celdas, ejecuta la siguiente macro,

Sub conocecolor() wcolor = ActiveCell.Interior.ColorIndex MsgBox wcolor End Sub

Posicionate en una celda y ejecuta la macro, la macro te envía un número, si corresponde a los números de la macro, ya está lista, si te arroja otro número, entoces cambia ese número en la macro.

Saludos. DamSi es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas