Bonjour,
Lorsque l'utilisateur change une valeur, l'évenement Workbook_Change est généré. Je souhaiterais avoir accès à l'ancienne valeur de la case dans la procédure gérant l'évenement Workbook_Change. Est ce possible? Si oui comment?
Merci
Bonjour,
Lorsque l'utilisateur change une valeur, l'évenement Workbook_Change est généré. Je souhaiterais avoir accès à l'ancienne valeur de la case dans la procédure gérant l'évenement Workbook_Change. Est ce possible? Si oui comment?
Merci
Bonjour
Dans un module standard, il faut déclarer une variable
Puis, dans le module de ThisWorkbook, tu places les codes suivants
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public ValeurCellule As Variant
Cette variable contiendra donc la valeur de la cellule active, et sera modifiée à chaque activation d'une cellule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Workbook_Open() ' Mémorise la valeur de la cellule active à l'ouverture du fichier ValeurCellule = ActiveCell.Value End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) ' Mémorise la valeur de la cellule qui est activée ValeurCellule = ActiveCell.Value End Sub
Dans l'évènement Worksheet_Change, tu peux rappeler cette variable pour obtenir l'ancienne valeur de la cellule...
Ok?
Salut CrazySeb, Pierre Fauconnier et les autresPierre ayant fait une proposition, avant de complexifier à loisir, demande quelques précisions :Je souhaiterais avoir accès à l'ancienne valeur de la case dans la procédure gérant l'évenement Workbook_Change. Est ce possible? Si oui comment?
- Ton problème concerne une feuille unique ou plusieurs ?
- Autorises-tu les multi-sélection ?
- On ne doit mémoriser que la valeur précédente au changement (pas l'historique) ?
A+
Bonsoir à tous,
A voir et adapter si cela répond à la question.
Ici, c'est le contenu de A1 qui est mémorisé après la première saisie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim Contenu, Initial Private Sub Worksheet_Change(ByVal Target As Range) Contenu = Initial If Target.Address <> "$A$1" Then Exit Sub Initial = Target: MsgBox "il y avait " & Contenu End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager