Resaltar la celda, fila o columna activa

Office 2013 and later

Los siguientes ejemplos de código muestran maneras de resaltar la celda activa o las filas y columnas que contienen la celda activa. Estos ejemplos usan el evento SelectionChange del objeto Worksheet.

Código de ejemplo provisto por: Tom Urtis, Atlas Programming Management

El siguiente ejemplo de código borra el color en todas las celdas de la hoja de cálculo al establecer la propiedad ColorIndex igual a 0, y luego resalta la celda activa al establecer la propiedad ColorIndex igual a 8 (turquesa).

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.ScreenUpdating = False
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    ' Highlight the active cell
    Target.Interior.ColorIndex = 8
    Application.ScreenUpdating = True
End Sub

El siguiente ejemplo de código borra el color en todas las celdas de la hoja de cálculo al establecer la propiedad ColorIndex igual a 0, y luego resalta la fila y columna completas que contienen la celda activa al usar las propiedades EntireRow y EntireColumn.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    With Target
        ' Highlight the entire row and column that contain the active cell
        .EntireRow.Interior.ColorIndex = 8
        .EntireColumn.Interior.ColorIndex = 8
    End With
    Application.ScreenUpdating = True
End Sub

El siguiente ejemplo de código borra el color en todas las celdas de la hoja de cálculo al establecer la propiedad ColorIndex igual a 0, y luego resalta la fila y columna que contienen la celda activa en la región actual al usar la propiedad CurrentRegion del objeto Range.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    If IsEmpty(Target) Or Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    With ActiveCell
        ' Highlight the row and column that contain the active cell, within the current region
        Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + .CurrentRegion.Column - 1)).Interior.ColorIndex = 8
        Range(Cells(.CurrentRegion.Row, .Column), Cells(.CurrentRegion.Rows.Count + .CurrentRegion.Row - 1, .Column)).Interior.ColorIndex = 8
    End With
    Application.ScreenUpdating = True
End Sub

Tom Urtis es MVP y fundador de Atlas Programming Management, una empresa dedicada a las soluciones empresariales integrales de Microsoft Office y Excel localizada en Silicon Valley. Tom cuenta con más de 25 años de experiencia en la administración de empresas y el desarrollo de aplicaciones de Microsoft Office. Además, es coautor de "Holy Macro! It’s 2,500 Excel VBA Examples".

Mostrar: