XL 2013 evenement workbook sheet selectionchange

gvives

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterais exécuter une macro a chaque fois qu'un utilisateur change de cellule sur n'importe quel classeur ouvert.

J'ai placer un application.run "mamacro" dans "Thisworkbooks sheet selection change" mais lorsque l'utilisateur se situe sur un autre classeur m'a macro ne s'exécute pas (Thisworkbook ne concerne que le classeur qui contient la macro si je ne me trompe pas).

Auriez vous une solution pour étendre l'évènement "thisworkbook sheet selection change" à l'ensemble des classeurs ouverts ?

Merci beaucoup d'avance et très bonne journée !!
 

mromain

XLDnaute Barbatruc
Re : evenement workbook sheet selectionchange

Bonjour gvives, joss, le forum,

Une solution consiste à utiliser l’évènement SheetSelectionChange de l’Ce lien n'existe plus (et non du classeur).

Le code ci-dessous (à mettre dans l’objet ThisWorkbook) permet ça :
  • à l’ouverture du classeur, on récupère l’application ;
  • ensuite, on utilise l’évènement de l’application.

VB:
Private WithEvents xlApp As Excel.Application

'à l'ouverture de ce classeur, récupérer l'application Excel
Private Sub Workbook_Open()
    Set xlApp = Application
End Sub


Private Sub xlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    'code qui va s'exécuter à chaque changement de cellule sur tous les classeurs
     'ouverts dans cette instance d'Excel
     MsgBox "Sélection actuelle : " & Target.Address(External:=True)
End Sub

A+
 

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet