Thanks AlphaFrog!

I even now have found another method that better covers my needs. I just leave it here in case could help somebody:

GO DOWN

Sub down ()
Dim startTime As Date

        startTime = Now

        
            ActiveCell.Offset(1, 0).Select
Do Until ActiveCell.EntireRow.Hidden = False
ActiveCell.Offset(1, 0).Select


            If DateDiff("s", startTime, Now) > 0.5 Then
ActiveCell.End(xlDown).Select
                Exit Do
            End If

 Loop

End sub
GO UP:


Sub Up ()
Dim startTime As Date

        startTime = Now

        
            ActiveCell.Offset(-1, 0).Select
Do Until ActiveCell.EntireRow.Hidden = False
ActiveCell.Offset(-1, 0).Select


            If DateDiff("s", startTime, Now) > 0.5 Then
ActiveCell.End(xlup).Select
                Exit Do
            End If

 Loop

End sub
Is basically the same code I had, but now I have added a condition that when the loop takes more than 0.5 seconds, stops the loop and goes directly to the next empty visible row