Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
MS Excel 2003: cambie el color de fondo de la fila según el valor de la celda
Este tutorial de Excel muestra cómo escribir una macro para cambiar el color de fondo de una fila en función de un valor de celda en Excel 2003 y versiones anteriores (con capturas de pantalla e instrucciones paso a paso).
Pregunta: En Microsoft Excel 2003/XP/2000/97, ¿es posible crear una macro para cambiar el color de fondo de una fila cuando los primeros 6 caracteres de la celda (dentro de la fila) son un valor?
Por ejemplo, si el código UPC en la columna C comienza con “007007”, quiero cambiar el fondo de una fila a azul.
R: Sí, es posible. Para cambiar el color de fondo de la fila según el valor de la celda, debemos crear una macro y luego crear un botón para llamar a la macro.
Descargue la hoja de cálculo de Excel (que se muestra a continuación)
En la siguiente hoja de cálculo, hemos creado un botón que llama a una macro para actualizar el color de fondo de cada fila. Esta macro se llama “Update_Row_Colors”.
Comenzará en la fila 7 y probará cada valor en la columna C. La macro dejará de probar el valor cuando encuentre la línea 2000.
Después de hacer clic en el botón llamado “Actualizar colores”, la hoja de cálculo ahora se ve así:
Como puede ver, el UPC en las líneas 7 a 14 comienza con “007007”, por lo que la macro actualiza el color de fondo a azul. Si el UPC comienza con “030087”, el color de fondo se actualiza a verde claro… etc.
Esta macro se puede modificar fácilmente para acomodar más código UPC agregando valores adicionales a la declaración del caso.
Puede ver las macros presionando Alt+F11.
codigo macro
El código de la macro se ve así:
Sub Update_Row_Colors() Dim LRow As Integer Dim LCell As String Dim LColorCells As String 'Start at row 7 LRow = 7 'Update row colors for the first 2000 rows While LRow < 2000 LCell = "C" & LRow 'Color will changed in columns A to K LColorCells = "A" & LRow & ":" & "K" & LRow Select Case Left(Range(LCell).Value, 6) 'Set row color to light blue Case "007007" Range(LColorCells).Interior.ColorIndex = 34 Range(LColorCells).Interior.Pattern = xlSolid 'Set row color to light green Case "030087" Rows(LRow & ":" & LRow).Select Range(LColorCells).Interior.ColorIndex = 35 Range(LColorCells).Interior.Pattern = xlSolid 'Set row color to light yellow Case "063599" Rows(LRow & ":" & LRow).Select Range(LColorCells).Interior.ColorIndex = 19 Range(LColorCells).Interior.Pattern = xlSolid 'Default all other rows to no color Case Else Rows(LRow & ":" & LRow).Select Range(LColorCells).Interior.ColorIndex = xlNone End Select LRow = LRow + 1 Wend Range("A1").Select End Sub