Macro que cambie el color de la fuente y de la celda

Quisiera que me ayudaran tengo que hacer unas macros (1) que se active con CTL+a e inserte una fila arriba de una tabla, luego macro (2), poner los encabezados de la tabla la fuente en color blanco y las celdas en gris oscuro, y macro (3) poner el contenido de la tabla con fuente color negra y celda color azul claro, mi duda es como le hago para que al ejecutarla ver que si funciono, pero al volver a ejecutarlo se observen otra vez los cambios.

1 Respuesta

Respuesta
1

Este es el resultado de la macro

1.- Inserta un línea antes de los datos

2.- Coloca los títulos y los formatea en gris de fondo y letra blanca en negrita

3.- Formatea el resto de la tabla en color azul celeste y letra en negritatodo esto se puede hacer en una macro aunque la deje en 2

4.- La macro funciona con CTRL+a en minúscula para ello tienes que colorar los programas que comiencen por private en el modulo thisworkbook en el panel de VBA uno activara el CTRL+a cada que abras el archivo y el otro lo desactivara antes de cerrar el libro, el resto de los programas colocalos en un modulo normal

y estas son las macros, los rem los pueden borrar no afectan

Private Sub Workbook_BeforeClose(Cancel As Boolean)
restablece_teclas
End Sub
rem ---------------------------------------------
Private Sub Workbook_Open()
EJECUTAR_CTRLA
End Sub
rem ---------------------------------------------
Sub EJECUTAR_CTRLA()
Application.OnKey "^{a}", "ejecuta_macro"
End Sub
Sub restablece_teclas()
Application.OnKey "^{a}"
End Sub
rem ---------------------------------------------
Sub EJECUTA_MACRO()
poner_encabezados
COLOREAR_TABLA
End Sub
rem ---------------------------------------------
Sub poner_encabezados()
Set TABLA = Range("a1").CurrentRegion
With TABLA
    .Rows(1).EntireRow.Insert
    .Cells(0, 1) = "TITULO 1"
    .Cells(0, 2) = "TITULO 2"
    .Cells(0, 3) = "TITULO 3"
    .Cells(0, 4) = "TITULO 4"
    With .Rows(0)
        .Interior.ColorIndex = 48
        .Font.Bold = True
        .Font.ColorIndex = 2
        .HorizontalAlignment = xlCenter
    End With
End With
Set TABLA = Nothing
End Sub
rem ---------------------------------------------
Sub COLOREAR_TABLA()
Set TABLA = Range("A1").CurrentRegion
With TABLA
    R = .Rows.Count
    Set TABLA = .Rows(2).Resize(R - 1)
    With TABLA
        .Interior.ColorIndex = 8
        .Font.ColorIndex = 1
        .Font.Bold = True
        .HorizontalAlignment = xlCenter
    End With
End With
Set TABLA = Nothing
End Sub

La macro esta diseñada para una tabla de n filas y n columnas si tienes más de 4 columnas tendrás que agregar tantos títulos como columnas tengas, tal como ves en el ejemplo.

¡Gracias! 

buenas tardes,

vuelvo hacer la misma pregunta de los macros, solo que no me explique bien ya que cada macro debe de funcionar con una combinacion diferente de letras ctrl+a (macro 1), ctrl+ñ (macro2), y ctrl+o (macro3)

"Quisiera que me ayudaran tengo que hacer unas macros (1) que se active con CTL+a e inserte una fila arriba de una tabla, luego macro (2), poner los encabezados de la tabla la fuente en color blanco y las celdas en gris oscuro, y macro (3) poner el contenido de la tabla con fuente color negra y celda color azul claro, mi duda es como le hago para que al ejecutarla ver que si funciono, pero al volver a ejecutarlo se observen otra vez los cambios."

Primero pon la información que vaya a tener la tabla no importa cuantas columnas o filas pongas la macro se adapta a esto, cada macro funciona con CTRL+a------Insertar fila

CTRL+ñ----poner encabezados y darle formatos

CTRL+o---Colocar Tabla

CTRL+r----borrar todo y comenzar de nuevo

Para que funcionen estas combinaciones de teclas primero debes ejecutar la macro activar teclas después de eso usa los ctrl+, antes de que salgas corre la macro desactivar teclas sino se quedaran así en todas las hojas que abras hasta que cierres Excel.

y estas con las macros

Sub activar_teclas()
With Application
    .OnKey "^{a}", "insertar_filas"
    .OnKey "^{ñ}", "poner_encabezados"
    .OnKey "^{o}", "colorear_tabla"
    .OnKey "^{r}", "regresar"
End With
End Sub
Sub desactivar_teclas()
With Application
    .OnKey "^{a}", ""
    .OnKey "^{ñ}", ""
    .OnKey "^{d}", ""
    .OnKey "^{r}", ""
End With
End Sub
Sub insertar_filas()
Set tabla = Range("a1").CurrentRegion
With tabla
    .Name = "tabla"
    .Rows(1).EntireRow.Insert
End With
Set tabla = Nothing
End Sub
Sub poner_encabezados()
Set tabla = Range("tabla")
With tabla
    col = .Columns.Count
    For i = 1 To col
        .Cells(0, i) = "Titulo " & i
    Next i
    With .Rows(0).Font
        .Bold = True
        .ColorIndex = 2
    End With
    With .Rows(0)
        .Interior.ColorIndex = 48
        .HorizontalAlignment = xlCenter
    End With
End With
Set tabla = Nothing
End Sub
Sub colorear_tabla()
Set tabla = Range("tabla")
With tabla
    .Interior.ColorIndex = 34
    .Font.Bold = True
End With
Set tabla = Nothing
End Sub
Sub regresar()
Set tabla = Range("tabla").CurrentRegion
With tabla
    .Rows(1).EntireRow.Delete
    .Interior.ColorIndex = xlNone
    .Font.Bold = False
End With
Set tabla = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas