Ca complique un peu.
Dans ThisWorkbook, mets :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.MoveAfterReturn = ResDir
If Direction <> 0 Then Application.MoveAfterReturnDirection = Direction
End Sub
Private Sub Workbook_Open()
ResDir = Application.MoveAfterReturn
If Application.MoveAfterReturn = True Then
Direction = Application.MoveAfterReturnDirection
Application.MoveAfterReturn = False
Else
Direction = 0
End If
End Sub
Dans un module standard, mets :
Public Direction As IntegerPublic ResDir As Boolean
Dans la feuille, mets
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Target > 10 Then
MsgBox ">10"
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
[A1].Select
End If
End If
Select Case Direction
Case 0: Exit Sub
Case -4121: Target.Offset(1).Select
Case -4159: Target.Offset(, -1).Select
Case -4161: Target.Offset(, 1).Select
Case -4162: Target.Offset(-1).Select
End Select
End Sub
Vérifie que ça marche et qu'après fermeture et réouverture d'Excel, le déplacement vers la droite est bien paramétré dans le cas où A1 est inférieur à 10.
Daniel