Bonjour, je voudrai savoir si lorsque l'on modifie la valeur d'une cellule, excel mémorise quelque part l'ancienne valeur ?
Si oui, y a t'il moyen de la récupérer via une fonction VBA
Version imprimable
Bonjour, je voudrai savoir si lorsque l'on modifie la valeur d'une cellule, excel mémorise quelque part l'ancienne valeur ?
Si oui, y a t'il moyen de la récupérer via une fonction VBA
bonjour vhsprt le forum que cherches tu a faire exactement??
une approche!! donne la valeur de l'avant derniére cellule modifiée
Code:
1
2
3
4
5 Sub es() Static cp As Range If Not cp Is Nothing Then MsgBox cp.Value Set cp = ActiveCell End Sub
Bonjour à tous.
Je ne crois pas qu'on puisse accéder à l'ancienne valeur d'une cellule. Par contre, en utilisant une procédure évènementielle, on peut la mémoriser avant qu'elle ne soit changée.
Par exemple, si je veux suivre ce qui se passe en cellule D4,Cet exemple te donnera peut-être des idées.Code:
1
2
3
4
5
6
7
8
9
10 Dim D4OldValue As Variant, sLastTarget As String Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$D$4" Then D4OldValue = Target.Value ElseIf sLastTarget = "$D$4" Then MsgBox "Valeur ancienne : " & D4OldValue & ", Valeur nouvelle : " & Me.Range("D4") End If sLastTarget = Target.Address End Sub
PGZ
Merci pour la réponse cela fonctionne à condition de déclarer les variables
"D4oldvalue" et "sLasttarget" comme "public" afin de pouvoir être récupée dans une autre procédure. Pour moi c'est la procédure "Sub Worksheet_Change(ByVal Target As Range)". Ainsi je peut faire le delta entre l'ancienne et la nouvelle valeur.:ccool:
Une chose encore, lorsque l'on effectue une action dans excel, excel le mémorise afin que l'on puisse utiliser "edition annuler".
Ma question de départ était de savoir si on pouvais d'une manière ou d'une autre avoir accès à ce "buffer" afin de pouvoir l'exploiter ce qui serait une autre manière de consulter l'ancienne valeur d'une cellule.