Quitter un Query

Messages postés
377
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
22 août 2018
-
Bonjour à tous,

Voilà mon code :
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.


Afficher la suite 

Votre réponse

1 réponse

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
Bonjour,

As-tu essayé en mettant un Stop après la boucle For...Next pour voir si la Function n'était pas appelée en boucle?

Je pensais à mettre Application.EnableEvents à False en début de Function et à True à la fin
Ou encore mettre un DoEvents en début de boucle.
Commenter la réponse de cs_MPi