Public Function ProcessusActif(NomProcess) As Boolean
Application.ScreenUpdating = False
Dim svc As Object
Dim squery As String
Dim oproc
Dim Actif As Boolean
Set svc = GetObject("winmgmts:root\cimv2")
squery = "select * from win32_process"
Actif = False
For Each oproc In svc.execquery(squery)
If oproc.Name = NomProcess And SoftOpen = True Then
Actif = True
ProcessusActif = Actif
Exit For
End If
Next
Set svc = Nothing
End Function
Il n'y a pas de problème, il tourne parfaitement.
Toutefois, le "Exit For" reste sans effet, et le rebouclage continue, alors que "ProcessusActif" est passé à "True".
Pour info, la fonction est déclenchée quand la macro "Private Sub Workbook_Open()" écrit dans la cellule AD1 et la formule dans la cellule : AF1 = ProcessusActif(AD1) renvoie le résultat : VRAI ou FAUX.
Je n'ai pas trouvé comment éviter le rebouclage... Quelqu'un aurait-il une idée? Merci d'avance. Cordialement.