Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Cambiar los colores de fondo con VBA

| 14 comentarios


Pasos para cambiar los colores de fondo de las celdas con VBA

¿Cómo se puede modificar el color de fondo de una celda utilizando Visual Basic para Aplicaciones (VBA)?

Podemos citar dos formas frecuentes en las que se puede realizar este cambio de color.

Debe utilizar la propiedad Interior de la celda y, a continuación:

  • Puede usar ColorIndex (para utilizar uno de los 56 colores "preestablecidos" de Excel): De esta forma se cambiaría el color de la celda activa.
ActiveCell.Interior.ColorIndex = 26

De esta forma se cambiaría el color de la celda activa. De esta forma le podemos cambiar de color a todo un rango de celdas.

  • O bien, puede utilizar Color:

De esta forma le podemos cambiar de color a todo un rango de celdas.

Range("A1:A6").Interior.Color = RGB(200,160,27)

Elaborado por: Eliot Vladimir

14 comentarios

  1. Amigo excelente muchas gracias

  2. y si quisiera volver a dejar la celda sin color ? como se haria?

    • color blanco RGB(255, 255, 255)

      • Range(Cells(1, 3), Cells(30, 3)).Interior.Pattern = xlNone

        ó
        Range("C,1:C30").Interior.Pattern = xlNone

        ó si es un selección de celdas
        Selection.Interior.Pattern = xlNone

        La ventaja de utilizar xlNone es que queda sin fondo alguno.

  3. De maravilla ok y muchisimas gracias

  4. Hola buen día, tengo una duda. En mi base de datos, deseo que cuando ponga abierto, se pinte la celda de rojo, en pendiente de amarillo y en cerrado de verde.
    Como hago eso de forma autómática, es decir, cuando escriba la palabra, que en automático de ponga del color que le asigné.

    Saludos, gracias y felicidades por los aportes

    • 1 Ve a inicio/formato condicional/resaltar reglas de celda/igual a… y ahi le pones

      2 coloca Abierto y elige color rojo
      3 repite el paso 1 y coloca pendiente y elige color amarillo
      4 repite el paso 1 y coloca cerrado y elige color amarillo

  5. buenas tardes , requiero de su ayuda con lo siguiente necesito colocar los resultados obtenido por vba en celdas , es decir si suma 1+2 el resultado colocarlo en un cells .. tengo un codigo pero la macro me colocas los valores apartir de la celda 50

    im ultimafila As Double
    Sheets("INDICADORES").Select
    ultimafila = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count
    Cells(ultimafila + 1, 1) = indicadorisp1

  6. aMIGOS, QUIERO HACER ESTO, PERO CON LO QUE ESTE SELECCIONADO POR EL MOUSE.. QUE VA ADENTRO DEL PARENTESIS??

    Range("??????").Interior.Color = RGB(200,160,27)

  7. Hola, tengo el siguiente problema

    Tengo 2 macros: 1 para pintar un rango de celdas y otra macro para pintar el mismo rango. Necesitaria unir ambas macro para que al activar un botón en la primer seleccion despinte y cuando se vuelva a presionar pinte el rango.

    Estas son las macros actuales, agradezco si se puden unir

    Sub despintar()
    '
    ' despintar Macro
    '

    '
    Range("H3:N4").Select
    With Selection.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    With Selection.Font
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = 0
    End With
    End Sub
    Sub pintar()
    '
    ' pintar Macro
    '

    '
    Range("H3:N3").Select
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.149998474074526
    .PatternTintAndShade = 0
    End With
    With Selection.Font
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    End With
    Range("H4:N4").Select
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorAccent2
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    Range("M4:N4").Select
    End Sub

  8. hola, quiero saber como colocarle color a un cierto grupo de celdas y de un color a otro grupo de celdas pero sin utilizar la opcion FORMATO CONDICIONAL, solo utilizando macros

  9. buen día a todos

    quisiera pedir de su apoyo en el siguiente caso

    tengo una base de datos (columnas) donde tengo varios porcentajes, quisiera saber como cambiar el color de fondo en el valór mínimo y maximo por ejemplo:

    A1=30%, D1=20% y F1=50%
    A2= 50, D2=10 y F2= 40%,
    .
    .
    .

    en este ejemplo quisiera que me marque de manera automática el D1 color verde y F1 color rojo del primer registro y A2 color rojo y D2 verde

    es importante mencionar que la base de datos cuenta con muchos registros por lo que necesitaría que se hiciera de manera automática

  10. Hola, como hago lo siguiente:

    Tengo dos columnas "A" y "C"
    Cómo creo un evento en "Workbook" para que cada vez que pinto de rojo cualquier celda en "A" cambie el valor a cero de la columa "C".

Responder a Paul Cancelar respuesta

Los campos requeridos estan marcados con *.