compter le nombre de sessions d'Excel

Issimo

XLDnaute Nouveau
Bonjour,

J'ai une macro complémentaire qui enregistre certaines données dans ses feuilles, donc dans l'événement "before close" il y a l'instruction d'enregistrement du fichier.

Le problème, c'est que lorsqu'il y a plusieurs sessions d'Excel et que l'on ferme l'une d'elles, l'enregistrement de la macro complémentaire se fait sous formes de copie dans le répertoire du dernier fichier ouvert. Je me retrouve donc avec des copies de la macro complémentaire un peu partout sur mon disque.

Je voudrais donc avoir une instruction conditionnelle pour enregistrer le fichier uniquement s'il y a une seule session d'Excel en cours. D'où la question :

Comment fait-on pour compter le nombre de Sessions d'excel en vba ?
 

MichelXld

XLDnaute Barbatruc
Re : compter le nombre de sessions d'Excel

Bonjour,

Un exemple de procéure qui compte le nombre de sessions Excel ouvertes :

Code:
'nécessite d'activer la reference Microsoft WMI Scripting Library
Dim objProcess As WbemScripting.SWbemObject
Dim colProcessList As WbemScripting.SWbemObjectSet
Dim objWMIService As WbemScripting.SWbemServices
Dim strComputer As String
 
strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'Excel.exe'")
 
MsgBox colProcessList.Count


bonne journée
michel
 

job75

XLDnaute Barbatruc
Re : compter le nombre de sessions d'Excel

Bonjour Issimo, salut Michel,

Il est peut-être inutile de compter le nombre de sessions Excel.

J'ai testé avec un fichier .xls, j'espère que c'est pareil avec .xla...

Si l'on ouvre le fichier sur plusieurs sessions, il me semble que sur la 2ème ouverture et les suivantes le fichier est en Lecture seule.

Alors, pour les macros du fichier, il suffirait de tester par :

Code:
If Not ThisWorkbook.ReadOnly Then

Je vous laisse essayer, pas du tout sûr de mon coup.

A+
 

Issimo

XLDnaute Nouveau
Re : compter le nombre de sessions d'Excel

Les deux solutions fonctionnent parfaitement, mais c'est vrai que la deuxième est plus pratique car quand on veut diffuser un fichier, on n'a pas besoin de demander aux utilisateurs d'activer une librairie.

Merci beaucoup Michel et Job75 :)
 
Dernière édition:

Discussions similaires