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?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
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
Partager