Macro VBA para añadir bordes superiores en Excel al cambiar un valor

En este artículo vamos a ver cómo crear una macro en Excel usando el lenguaje VBA para añadir un borde superior a las celdas de tu hoja. La función es muy útil cuando quieres separar visualmente grupos de datos que cambian en una columna específica.

Hoja de cálculo con una tabla donde se aplica un borde superior automáticamente al cambiar los valores en la columna G.
La macro detecta el cambio en la columna G y dibuja un borde superior desde A hasta Z.

El código detectará automáticamente la última fila con datos y comparará el valor actual de la columna G con el de la fila anterior. Cada vez que encuentre un cambio, aplicará un borde superior en todo el rango desde la columna A hasta la Z.

Código de la macro

Aquí tienes el código listo para copiar y pegar directamente en tu editor de VBA:

Sub AgregarBordes()
    Dim ws As Worksheet
    Dim UltimaFila As Long
    Dim i As Long

    Set ws = ActiveSheet

    'Última fila con datos en la columna G
    UltimaFila = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row

    'Quitar bordes superiores existentes (opcional)
    ws.Range("A2:Z" & UltimaFila).Borders(xlEdgeTop).LineStyle = xlNone

    For i = 2 To UltimaFila

        If ws.Cells(i, "G").Value  ws.Cells(i - 1, "G").Value Then

            With ws.Range("A" & i & ":Z" & i).Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlThin    'Puedes cambiar a xlMedium si prefieres
                .Color = RGB(0, 0, 0)
            End With

        End If

    Next i

End Sub

Para usar esta macro, simplemente cópiala y pégala en el editor de macros de tu libro de trabajo. El script asume que la primera fila contiene los encabezados, por lo que inicia su análisis desde la segunda fila.