comment détecter qu'il y a plusieurs instances Excel qui tournent ?

Le
TILLOUX
Bonjour,

Si on a un fichier TOTO ouvert, quand on tente d'ouvrir à nouveau TOTO, on a
un message qui nous avertit que le fichier est déjà ouvert.

Mais suivant depuis où on ouvre à nouveau TOTO, c'est une seconde instance
d'Excel qui s'ouvre et le fichier TOTO est ouvert dans cette instance là.

Dans ce cas, le Ctrl-ALt-DEL puis la liste des processus montre 2 lignes
Excel (les 2 instances ouvertes).

Question:

en VBA, comment tester qu'une instance excel est déjà ouverte et ainsi
éviter l'ouverture d'une seconde instance ?

Merci d'avance.

Tilloux
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
TILLOUX
Le #19238121
Merci beaucoup MichDenis.

Ca fonctionne très bien.

Tilloux

"MichDenis"
Bonjour Tilloux,

'-----------------------------------------------------------
Sub Test()
Dim Programme As String

'Nom du programme à définir
Programme = "Excel.exe"

MsgBox "Il y a " & NbInstance(Programme) & _
" instances " & Programme & " ouvert(s)"

End Sub
'-----------------------------------------------------------
Function NbInstance(Programme As String)
Dim X As Integer

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = '" & Programme & "'")
For Each objProcess In colProcessList
X = X + 1
Next
NbInstance = X

End Function
'-----------------------------------------------------------



"TILLOUX" discussion : ##
Bonjour,

Si on a un fichier TOTO ouvert, quand on tente d'ouvrir à nouveau TOTO, on
a
un message qui nous avertit que le fichier est déjà ouvert.

Mais suivant depuis où on ouvre à nouveau TOTO, c'est une seconde instance
d'Excel qui s'ouvre et le fichier TOTO est ouvert dans cette instance là.

Dans ce cas, le Ctrl-ALt-DEL puis la liste des processus montre 2 lignes
Excel (les 2 instances ouvertes).

Question:

en VBA, comment tester qu'une instance excel est déjà ouverte et ainsi
éviter l'ouverture d'une seconde instance ?

Merci d'avance.

Tilloux


Publicité
Poster une réponse
Anonyme