Je souhaite effectuer une action dans une macro de classeur Excel après une période d'inactivité (masquer/protéger certaines feuilles de calcul). Quel est le meilleur/le plus simple pour y parvenir?Comment détecter l'inactivité de l'utilisateur dans un classeur Excel
Je suppose que je vais utiliser Application.OnTime
pour vérifier périodiquement si l'utilisateur a été actif. Mais quels événements dois-je gérer pour voir si l'utilisateur était "actif" (c'est-à-dire qu'il a fait quelque chose - n'importe quoi - avec le classeur)? Clarification: Je veux détecter toutes les activités, pas seulement les changements. C'est à dire. y compris les clics de souris, la sélection, la copie, la navigation avec le clavier, l'évolution des feuilles de travail, ...
Je suppose que lorsqu'un événement de l'interface utilisateur se trouve que représente l'activité des utilisateurs, je vais définir une variable ainsi:
LastActivityTime = Now
et la macro exécutée par Application.OnTime
va vérifier cette variable pour voir si l'utilisateur a été actif récemment. Quels événements (autres que SheetChange
) devrais-je gérer pour définir cette variable? J'avais espéré qu'il y aurait KeyUp
et MouseUp
événements, ces deux auraient probablement été assez. Mise à jour: J'ai implémenté cela en traitant Workbook_SheetActivate
, Workbook_SheetSelectionChange
et Workbook_WindowActivate
. D'un point de vue réaliste, cela est probablement suffisant.
Merci, mais je souhaite détecter une activité qui ne modifie pas le classeur aussi. J'ai ajouté quelques éclaircissements à ma question. – Joe