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 !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 !
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
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
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" <Stan@discussions.microsoft.com> a écrit dans le message news:
3D79B6F3-D73E-4948-9FB2-92ED548C9243@microsoft.com...
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 !
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 !