Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("G4")) Is Nothing Then
        Call NameOfMacroThatHidesLines
    End If
End Sub
NameOfMacroThatHidesLines needs to be replaced by the name of the macro that is assigned to your button.