Bonjour,
une version qui se base sur les cellules protégées.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Locked Then
Do
Set c = c.Offset(, 1)
Loop Until Not c.Locked Or Intersect(c, c.Parent.UsedRange) Is Nothing
Application.EnableEvents = False
c.Select
Application.EnableEvents = True
End If
Next c
End Sub
Le pb c'est que je sais pas si tu peux être amené à remplir manuellement les entêtes de lignes des tableaux et/ou si on peut arrêter le décalage sur une cellule vide.
J'ai donc fait le choix d'arrêter en fin de zone utilisée pour éviter l'erreur en dernière colonne de la feuille.
Il faudra ajouter un système si certaines saisies doivent être possibles dans ce cas (sur double-clic par exemple ?) ou que tu inhibes la macro le temps d'une mise à jour.
eric