Última actualización: agosto de 2021; MicrosoftExcel 365, 2019, 2016.
En el tutorial de automatización de VBA para Excel de hoy, aprenderemos cómo podemos cambiar mediante programación el color de una celda en función del valor de la celda.
Podemos usar esta técnica al desarrollar un tablero de estado simple, por ejemplo.
Configuración
Si aún no está desarrollando en Excel, le recomendamos que consulte nuestra guía de introducción a las macros de Excel . Específicamente, debe asegurarse de que la pestaña Desarrollador esté disponible en su cinta de opciones de Microsoft Excel, ya que la usará para escribir código simple.
- Abra Microsoft Excel. Tenga en cuenta que se espera que el código proporcionado en este tutorial funcione en Excel 2007 y versiones posteriores.
- En una hoja de trabajo vacía, agregue la siguiente tabla:
![¿Cómo establecer un color de celda de Excel según una condición con VBA? ¿Cómo establecer un color de celda de Excel según una condición con VBA?](/resources8/images42/image-8134-0208131936213.png)
- Ahora continúe y defina un rango con nombre presionando: Fórmulas >> Definir nombre
![¿Cómo establecer un color de celda de Excel según una condición con VBA? ¿Cómo establecer un color de celda de Excel según una condición con VBA?](/resources8/images42/image-4204-0208131936776.png)
Cambiar el color interior de la celda según el valor con Cell.Interior.Color
- Presiona la entrada Desarrollador en la cinta.
- Presiona Visual Basic o Alt+F11 para abrir tu editor VBA de desarrollador.
- A continuación, resalte la hoja de trabajo en la que le gustaría ejecutar su código. Alternativamente, seleccione un módulo que tenga su código VBA.
- Adelante, pega este código. En nuestro ejemplo, modificaremos el color interior de un rango de celdas a valores RGB de celda específicos correspondientes a los colores rojo, amarillo y verde.
- Específicamente usamos el método Cell.Interior.Color de Excel VBA y pasamos el valor RGB o índice de color correspondiente.
Sub Color_Cell_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Status")
For Each MyCell In StatusRange
StatValue = MyCell.Value
Select Case StatValue
Case "Progressing"
MyCell.Interior.Color = RGB(0, 255, 0)
Case "Pending Feedback"
MyCell.Interior.Color = RGB(255, 255, 0)
Case "Stuck"
MyCell.Interior.Color = RGB(255, 0, 0)
End Select
Next MyCell
End Sub
- Ejecute su código, ya sea presionando F5 o Ejecutar >> Ejecutar Sub / UserForm.
- Notará que el panel de estado se llenó como se muestra a continuación:
![¿Cómo establecer un color de celda de Excel según una condición con VBA? ¿Cómo establecer un color de celda de Excel según una condición con VBA?](/resources8/images42/image-1343-0208131937426.png)
- Guarde su código y cierre su editor de VBA.