MS Excel 2003: cambie el color de fondo de la fila según el valor de la celda

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
(Visited 2 times, 1 visits today)