DEJE QUE EXCEL HAGA EL TRABAJO SUCIO

Resaltar la fila de la celda seleccionada en una hoja de Excel

La siguiente macro de evento resaltará la fila en la que se encuentre de la hoja en la que se copie el código. El resaltado se hace con una autoforma, teniendo la ventaja de no modificar el formato de la celda:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)


    Dim Forma As Excel.Shape
    Dim L#, T#, W#, H#


    Const Columna_inicial   As Long = 1
    Const Columnas          As Long = 6
    Const Grosor_borde      As Byte = 1
    Const Color_borde       As Byte = 5 'Use la paleta de colores de ColorIndex


    With Me.Cells(Target.Row, Columna_inicial).Resize(, Columnas)

        L = .Left
        T = .Top
        W = .Width
        H = .Height

    End With


    With Me.Shapes

        
        On Error Resume Next

            .Item("Resaltado").Delete

        On Error GoTo 0

        
        With .AddShape(1, L, T, W, H)
        
            .Name = "Resaltado"
            .Line.Weight = Grosor_borde
            
            With .DrawingObject
            
                .Interior.ColorIndex = xlNone
                .Border.ColorIndex = Color_borde
                
            End With
            
        End With

        
    End With
    

End Sub
¿Qué hago con este código?

Las constantes Columna_inicial, Columnas, Grosor_borde y Color_borde indican las características que tendrá el resaltado.

El color del borde de la autorforma se genera con ColorIndex, para ver la paleta de color de color index vea este otro tema: ¿Cómo obtener los valores correspondientes a ColorIndex?

0 comentarios:

Publicar un comentario en la entrada