Quitter un Query

CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention - 22 août 2018 à 23:26 - Dernière réponse : cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention
- 23 août 2018 à 16:53
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

cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 23 août 2018 à 16:53
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.