Oui c'est vrai que les Query se sélectionnent à la fin… Mais excusez-moi, vous relancez une requête à chaque fois que vous modifiez des valeurs ?? Ne serait-ce pas plus simple de lancer une requête une fois tout modifié ? C'est assez "lourd" comme procédure.
Sinon peut être qu'on pourrait mettre un "temps d'attente", mais c'est vraiment pas terrible je trouve. A mon avis le problème se situe autre part, quand vous exécutez le code ci-dessous, que vous affiche la fenêtre immédiate ?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim currSel As Range
Set currSel = Selection
Debug.Print "t:",Target.Address
Debug.Print "c:", currSel.Address
Application.ScreenUpdating = False
Set KeyCells = Union(Range("t_Exemple[Exemple1]"), Range("t_Exemple[Exemple2]"))
If Not Intersect(Target, KeyCells) Is Nothing Then
Range("t_Exemple").ListObject.QueryTable.Refresh BackgroundQuery:=False
DoEvents
currSel.Offset(1).Select
Debug.Print "s:", Selection.Address
End If
End Sub