Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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+
 

gvives

XLDnaute Occasionnel
Re : evenement workbook sheet selectionchange

Merci mromain, Merci Joss,

Désolé pour ma réponse tardive, mais c'est parfait ça marche parfaitement !!

Très bonne soirée à vous !
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…