Hi, joh46k,

taking JapanDave´s concept of worksheet change please try this code and see if you may work with it (it will have an effect in the row you change/enter data). Code goes behind the sheet wwhich you want to monitor:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Long
  Dim blnDo As Boolean
  
  If Target.Count > 1 Then Exit Sub
  Application.ScreenUpdating = False
  On Error GoTo extsub
  
  If Not Intersect(Target, Range("B:M")) Is Nothing Then
    With Range("B" & Target.Row & ":M" & Target.Row)
      .Borders.LineStyle = 0
      For i = 7 To 11
        Select Case i
          Case 7, 10, 11
            blnDo = True
          Case 8, 9
            If Cells(Target.Row, "M") = Cells(Target.Row - 1, "M") Then
              Range("B" & Target.Row - 1 & ":M" & Target.Row - 1).Borders(i).LineStyle = 0
              blnDo = False
            Else
              blnDo = True
            End If
        End Select
        If blnDo Then .Borders(i).LineStyle = 1
      Next i
    End With
  End If

extsub:
  Application.ScreenUpdating = True

End Sub
For updating with a Button I would check the date in Column M to build a range for applying borders there.

HTH,
Holger