Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : URGENT : Problème avec DoEvents sous Excel97 [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (DeathAngel)

jeudi 26 juin 2003 à 17:04:50 | URGENT : Problème avec DoEvents sous Excel97

DeathAngel

Bonjour à toutes et à tous.

J'ai un problème avec Excel97 :
Je lance par macro un exécutable, et j'attends qu'il finisse avec un DoEvents. Il est impératif que j'attende la fin de l'exécution, car l'exe fournit un fichier de résultat dont j'ai besoin dans la suite de mon code.
Or, le DoEvents semble bloquer Excel (100% de cpu), et je suis obligé d'arrêter les macros.

Bizarement, le même code fonctionne avec excel 2002 (XP).
Encore un problème de compatibilité entre les versions !!!

Quelqu'un saurait-il comment contourner le problème du DoEvents. C'est vraiment très urgent et très important.

Merci d'avance

DA

PS : Ci dessous un extrait de mon code, pour compréhension

Sub WaitForTerm(hInstance As Long)
'================================
'Cette procédure attend la fin d'exécution d'un
'programme identifié par son handle, en
'utilisant l'API Win32
'================================
' Description des variables
'================================
Dim hProcess As Long
Dim lngRetVal As Long
Dim lngExitCode As Long
'================================

On Error GoTo errRunAppWait

' Start up the application.
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or SYNCHRONIZE, True, hInstance)
Do

' Attempt to retrieve the exit code, which will
' just not exist until the application has quit.
lngRetVal = GetExitCodeProcess(hProcess, lngExitCode)
'ET VALA LE PBM
DoEvents

Loop While lngExitCode = STILL_ACTIVE

EndRunAppWait:
Exit Sub
errRunAppWait:
MsgBox "Une erreur est survenue dans la procédure WaitforTerm : " & Err & " - " & Error$(), vbCritical
Resume EndRunAppWait

End Sub

'Code principal
...
' Lancement du programme ExtractProp561.EXE
lngShell = Shell(strPrgFortran, vbHide)

' Attendre que le programme soit terminé
WaitForTerm lngShell
...

jeudi 26 juin 2003 à 22:17:14 | Re : URGENT : Problème avec DoEvents sous Excel97

BruNews

Administrateur CodeS-SourceS
cela doit effectivement consommer de la cpu, ne jamais faire de boucle sur GetExitCodeProcess(), il faut utiliser WaitForSingleObject pour attendre la sortie et a ce point tu pourras lire le code de sortie par GetExitCodeProcess().
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Bonjour à toutes et à tous.
>
> J'ai un problème avec Excel97 :
> Je lance par macro un exécutable, et j'attends qu'il finisse avec un DoEvents. Il est impératif que j'attende la fin de l'exécution, car l'exe fournit un fichier de résultat dont j'ai besoin dans la suite de mon code.
> Or, le DoEvents semble bloquer Excel (100% de cpu), et je suis obligé d'arrêter les macros.
>
> Bizarement, le même code fonctionne avec excel 2002 (XP).
> Encore un problème de compatibilité entre les versions !!!
>
> Quelqu'un saurait-il comment contourner le problème du DoEvents. C'est vraiment très urgent et très important.
>
> Merci d'avance
>
> DA
>
> PS : Ci dessous un extrait de mon code, pour compréhension
>
> Sub WaitForTerm(hInstance As Long)
> '================================
> 'Cette procédure attend la fin d'exécution d'un
> 'programme identifié par son handle, en
> 'utilisant l'API Win32
> '================================
> ' Description des variables
> '================================
> Dim hProcess As Long
> Dim lngRetVal As Long
> Dim lngExitCode As Long
> '================================
>
> On Error GoTo errRunAppWait
>
> ' Start up the application.
> hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or SYNCHRONIZE, True, hInstance)
> Do
>
> ' Attempt to retrieve the exit code, which will
> ' just not exist until the application has quit.
> lngRetVal = GetExitCodeProcess(hProcess, lngExitCode)
> 'ET VALA LE PBM
> DoEvents
>
> Loop While lngExitCode = STILL_ACTIVE
>
> EndRunAppWait:
> Exit Sub
> errRunAppWait:
> MsgBox "Une erreur est survenue dans la procédure WaitforTerm : " & Err & " - " & Error$(), vbCritical
> Resume EndRunAppWait
>
> End Sub
>
> 'Code principal
> ...
> ' Lancement du programme ExtractProp561.EXE
> lngShell = Shell(strPrgFortran, vbHide)
>
> ' Attendre que le programme soit terminé
> WaitForTerm lngShell
> ...
>

vendredi 27 juin 2003 à 10:18:11 | Re : URGENT : Problème avec DoEvents sous Excel97

DeathAngel

Salut BruNews

MERCI !!!
Vraiment, ça marche nickel, et en plus, c'est compatible sur toutes les versions VBA

Tu m'as viré une très grosse épine du pied.

Merci encore.

DA



Cette discussion est classé dans : problème, long, code, urgent, doevents


Répondre à ce message

Sujets en rapport avec ce message

Problème urgent pour RTF !! [ par Jo Ace ] J'ai besoin d'une réponse immédiate : je veux faire un éditeur de code source java et je veux grâce à un RTF text box colorer mon code source. MAIS CO Smileys Urgent! [ par Ulysse3 ] Bon voçi mon problème!Je suis capable dans une phrase de trouver les code de Smileys ex: allo :)Et sa va donner:Allo Mais là le problème C'est que j'a Problème d'utilisation d'une Class [ par Shucky ] Bonjour à tous,Tout d'abord j'espere avoir bien choisi le thème du sujet si ce n'est pas le cas je tien à m'en excuser.Je sollicite votre aide aujourd Problème de suppression d'un enregistrement [ par lebasketeur ] Bonjour.Mon probleme c'est dans la suppression d'un enregsitrement,  je suis nouveau dans la programmation avec ADO, j'ai utilisé ce code, mais il ne Problème pour écrire un XmlNode [ par gregory__forel ] Bonjour à tous,Je voudrais ajouter un nouveau noeud  pour quedevienne:            </NoeudEnfant&g problème de lecture du code barre [ par Reno2 ] Monsieur bonjour, <p class="MsoNormal Problème de génération Word lorsque plusieurs documents sont ouverts [ par wismerhillbest ] Bonjour, Je vous expose mon problème :Grace à une application Access, je dois générer un document Word dont la plupart des informations proviennent de Code trop long à exécuter [ par chan33 ] Bonjour à tous,J'ai un petit problème, mais qui est très agaçant. Voilà le code suivant est trop long à exécuter, environ 3 à 4 minutes, est-ce que ça Problème création graphique [ par Ledaf ] Bonjour à tous,Voilà j'ai un problème au niveau de mon graphique. Voici le code:<div class="smallfont" style="MARGIN-BOTTOM: problème code VBA [ par front33 ] Bonjour,J'ai un code qui ne marche pas et je n'arrive pas à savoir pourquoi.Le message erreur est Run time erreur 1004 Application-defined or object-d


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.