application.undo fonctionne lorsque vous utilisez 'enter' mais pas si vous click une autre cellule

J'ai une routine qui regroupe l'ancienne valeur après un changement. Il est basé sur des exemples dans ce tableau en utilisant la méthode d'annulation pour collecter l'ancienne valeur. Nous constatons que si la cellule est modifiée en appuyant sur un 'Entrée', alors l'Application.undo fonctionnera. Si la cellule est modifiée en cliquant sur une autre cellule, l'Application.Undo ne fonctionnera pas. Voici mon code jusqu'à présent:

Private Sub worksheet_change(ByVal Target As Range) Dim nextRow As Integer Dim oldValues As Variant Dim newValues As Variant Dim oldRev, newRev, diffRev As Double Dim NumRows, NumCols As Integer Dim lRow, lCol As Integer If Not Intersect(Target, Range("Small")) Is Nothing Then ' On Error GoTo err NumRows = Target.Cells.Rows.Count NumCols = Target.Cells.Columns.Count newValues = Target.Value2 Application.EnableEvents = False Application.Undo oldValues = Target.Value2 ... 

Dans les deux cas, la valeur de la cellule change. Dans les deux cas, la modification de la feuille de calcul se triggers. C'est juste que l'annulation ne fonctionne pas, à less qu'un Enter ne soit utilisé. Merci pour toute aide. Riches