QQ’un pourrait-il m’expliquer qu’est ce qui cloche dans mon exemple (ou pourquoi vous ne voulais pas l’utiliser, sniff).
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
On Error Resume Next
If Target.Count = 1 Then
If Range(Range("A1")) <> Range("B1") Then Range("A2") = Range("A1")
Range("B1") = Target.Value
Range("A1") = Target.Address
End If
End Sub
/!\ il faut bien faire la difference entre "adresse" et "valeur" (ou "contenu")
A la premiere execution de la macro, l’adresse de la cellule selectionne apparait en A1 et son contenu en B1 (le On Error gere le Range(“ ”) qui apparaitra alors)
Lorsqu’on deselectionne (c-a-d on selectionne une autre cellule), la macro lit la valeur de la cellule dont l’adresse est en A1 (Range(Range("A1"))),
compare son contenu avec la cellule B1 (<> Range("B1")) et si c’est different alors l’adresse apparait en A2.
Enfin, la macro actualise les cellules A1 et B1 pour la prochaine “deselection” (Range("B1") = Target.Value, Range("A1") = Target.Address), et ainsi de suite…
Moi, je ne vois aucun pb (d’ailleurs ca marche).
A++, Sylsyl.