OVH Cloud OVH Cloud

Coordonnées d'une cellule

2 réponses
Avatar
Stan
Bonjour à tous,

J'ai une procédure SheetSelectionChange dans un EventClassModule, qui se
déclenche chaque fois que je change la sélection d'une cellule sur une
feuille.
L'adresse de la nouvelle cellule est facilement obtenue, mais comment
obtenir celle de la cellule que l'on vient de quitter.
J'ai essayé plein de trucs, mais ça fait plutôt bidouille !

Merci par avance.
--
Stan

2 réponses

Avatar
anonymousA
bonojour,

en dehors de bricolage, à ma connaissance on ne peut pas.
Pour change, on peut utiliser undo et encore dans des conditions bien
particulières, mais la selection ne se prête pas à Undo.

on peut récupérer , à chaque fois qu'on selectionne, les adresses des
cellules et les mémoriser quelquepart. Ensuite à la prochaine sélection, on
fait une comparaison entre la plage mémorisée et la nouvelle plage. Il ne
faut pas oublier de gérer la 1ere addresse mémorisable lorsqu'on active la
feuille, car dans ce cas, la cellule active ou la plage active ne déclenche
pas d'évenement SelectionChange.

A+


Bonjour à tous,

J'ai une procédure SheetSelectionChange dans un EventClassModule, qui se
déclenche chaque fois que je change la sélection d'une cellule sur une
feuille.
L'adresse de la nouvelle cellule est facilement obtenue, mais comment
obtenir celle de la cellule que l'on vient de quitter.
J'ai essayé plein de trucs, mais ça fait plutôt bidouille !

Merci par avance.
--
Stan


Avatar
Hervé
Salut Stan,
Tout simplement en utilisant une variable statique :
'Proc qui doit être sensiblement identique à celle se trouvant dans ton
module de classe (ici, nommé Classe1) :
'--------------------
Public WithEvents CelAdresse As Application

Private Sub CelAdresse_SheetSelectionChange( _
ByVal Fe As Object, _
ByVal Cellule As Range)
'variable statique pour mémoriser l'adresse
Static Adresse As String
If Adresse <> "" Then MsgBox Adresse
Adresse = Cellule.Address(0, 0)
'ici ton code... il peut être placé avant ;o)
End Sub
'---------------------
Proc située dans le module du ThisWorkbook pour initialiser :
'---------------------
Dim Adresse As New Classe1

Private Sub Workbook_Open()
Set Adresse.CelAdresse = Application
End Sub
'----------------------

Hervé.

"Stan" a écrit dans le message news:

Bonjour à tous,

J'ai une procédure SheetSelectionChange dans un EventClassModule, qui se
déclenche chaque fois que je change la sélection d'une cellule sur une
feuille.
L'adresse de la nouvelle cellule est facilement obtenue, mais comment
obtenir celle de la cellule que l'on vient de quitter.
J'ai essayé plein de trucs, mais ça fait plutôt bidouille !

Merci par avance.
--
Stan