VBA - Worksheet_Change ancienne valeur de la cellule

VBA - Worksheet_Change ancienne valeur de la cellule - VB/VBA/VBS - Programmation

Marsh Posté le 23-11-2006 à 21:04:48    

Salut à tous,
 
J'aimerais savoir si il est possible avec l'évennement Worksheet_Change de récuperer l'ancienne valeur de la cellule ?
 
Merci

Reply

Marsh Posté le 23-11-2006 à 21:04:48   

Reply

Marsh Posté le 24-11-2006 à 08:25:14    

Bonjour,
 
Worksheet_Change te retourne la valeur de la cellule dans laquelle tu te positionnes (avant la modification)

Reply

Marsh Posté le 24-11-2006 à 08:48:05    

Bonjour,
Paul Hood es-tu certain??
Où?
Cordialement

Reply

Marsh Posté le 24-11-2006 à 08:59:05    

Oups...
Effectivement, je suis parti sur worksheet_selectionchange.
Et worksheet_change te retourne la valeur quand tu sors de la cellule.
 
Désolé...il est trop tôt..je vais me recoucher !!!

Reply

Marsh Posté le 24-11-2006 à 09:57:34    

Bonjour,
Paul Hood: ta réponse m'a donné une idée:
 
Mettre dans un module:
Public Anciennevaleur
 
 
puis dans feuil1:
 
Private Sub Worksheet_Change(ByVal Target As Range)
 
MsgBox Anciennevaleur
 
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
Anciennevaleur = Target
 
End Sub
 
Ce qui implique une saisie manuelle (ou un select avant de changer la valeur si c'est par macro, mais dans ce cas je n'en vois pas l'intérêt)

Reply

Marsh Posté le 24-11-2006 à 10:06:38    

Seniorpapou : pourquoi une saisie manuelle ou un select si par macro ?

Reply

Marsh Posté le 24-11-2006 à 10:48:12    

Bonjour,
Parce que en manuel je suis certain d'avoir un selection change, par contre si je change une valeur par vba je dois pouvoir le faire sans select et dans ce cas Ancienne valeur contient la valeur de la dernière cellule sélectionnée.  
Nota:  affirmations gratuites que je n'ai pas eu le courage de tester
Mais je sens que je vais être obligé de le faire. lol
Cordialement

Reply

Marsh Posté le 24-11-2006 à 10:53:03    

Merci pour votre aide les gars,
 
Pour ce qui est des saisies, dans ce cas là elle sont toutes manuelles.
 
Je trouve étrange que cette valeur ne soit pas mise dans Taget.value2 par exemple
 
J'avais essayé une technique consistant à appeler Application.undo deux fois de suite mais celle si repassait dans l'évenement Change :-) donc ca partait en boucle :-( .... dommage
 
 
Cordialement


Message édité par trakto le 24-11-2006 à 10:54:54
Reply

Marsh Posté le 24-11-2006 à 11:11:01    

Bonjour,
tu peux éviter de tourner en rond en mettant:
Application.EnableEvents = False
Application.Undo
 
Application.EnableEvents = True
Cordialement

Reply

Marsh Posté le 24-11-2006 à 11:17:20    

Merci seniorpapou !!
 
Je pense que je vais la faire comme ca.
 
Merci encore

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed