Bonjour, Salut Chris !
Un ersatz, utilisant le déplacement du curseur dans la feuille :
Dim Lg As Long
Private Sub Worksheet_Activate()
Lg = Selection.Row
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim nLg&
nLg = Target.Row
Select Case nLg
Case Is > Lg
If Not Me.Rows(1).Hidden Then Me.Rows("1:4").Hidden = True
Case Is < Lg
If Me.Rows(1).Hidden Then Me.Rows("1:4").Hidden = False
End Select
Lg = nLg
End Sub
Code à placer dans le module de la feuille. A tester pour voir si cela s'approche de ce que tu souhaites.
Sinon, comme te l'a indiqué Chris, il te faut rechercher du côté des API... (mouse_event peut-être ?)
Une autre solution (si l'on y parvient) consiste à étudier la question de savoir si l'on peut créer des évènement de l'objet Window. Un évènement ScrollRowChange, enregistrant les variations de la ligne supérieure visible de la fenêtre devrait pouvoir répondre à ton voeu : si la ligne augmente on masque, si elle diminue on démasque...
La question est relativement intéressante, mais je risquerais fort d'y passer la journée... et j'ai vraiment beaucoup d'autres choses à faire !
Cordialement.