Biankiii
Messages postés2Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention28 juin 2006
-
27 juin 2006 à 14:13
cs_happiness
Messages postés1Date d'inscriptionvendredi 14 juillet 2006StatutMembreDernière intervention15 décembre 2010
-
15 déc. 2010 à 23:38
Bonjour à tous :)
Tout d'abord je tenais à m'excuser si je n'ai pas placer mon message dans la bonne catégorie.
Je développe une application en VBA qui permet à Outlook de récupérer des évènements à partir d'une base de données distantes.
Ces évènements sont en réalité des réservations de chambres pour un gite qui sont prises à partir du site internet de l'établissement.
Ce processus de synchronisation entre Outlook et le site s'effectue toute les 10 minutes (600 secondes), j'ai donc mis en place une procédure en VBA qui gère un timer et qui execute d'autres procédure chargées de récupérer à partir de la BDD et d'insérer dans le calendrier d'Outlook les réservations (contenue dans une BDD MySQL).
Voici le code de ma procédure qui gère le timer :
'---------------------------------------------------------
'Gestion du Timer
Private Sub fairePause()
Dim PauseTime As Integer
Dim start As Single
PauseTime = 600
start = Timer
Do While Timer < start + PauseTime
DoEvents
Loop
Debug.Print (Time & " : Sub fairePause : Le timer a été relancé à " & Time)
Call parcoursReservationBDD
Call fairePause
End Sub
'---------------------------------------------------------
Le problème qui se pose est le suivant : lorsque la procédure fairePause se lance, celle-ci bloque Outlook malgré l'utilisation de DoEvents. Par bloquer, j'entend que Outlook ne récupère plus les messages (mail) à partir du serveur POP configuré. D'autre part, depuis que j'ai mis ce module VBA en test, j'observe d'autres "bugs" sur Outlook : les barres d'outils disparraissent, les aperçu des messages ne s'affichent plus, ...
J'ai fais quelques tests en mettant l'application VBA en pause lorsque j'observe l'un de ces bugs et j'ai remarqué à chaque fois que l'exécution était bloquée sur DoEvents.
Donc ma question est : est-ce que l'utilisationn de DoEvents est justifiée ici ? et si non, qu'elle autre instruction pourrais-je utiliser pour qu'Outlook puisse s'exécuter normalement (récupérer les mail, ...) pendant les 10 minutes d'attente ?
En espérant avoir été clair...je vous remercie d'avance pour l'aide éventuelle que vous pourrez m'apporter.
Biankiii
Messages postés2Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention28 juin 2006 28 juin 2006 à 09:55
Bonjour,
Tout d'abors merci de votre réponse :)
J'ai l'impression que la solution proposée à partiellement corrigé mon problème : Outlook récupère correctement les mails même lorsque l'application VBA est lancée.
Par contre, il reste toujours un disfonctionnement léger d'Outlook avec cette appli VBA : lorsque je reçois un nouveau mail, la petite enveloppe apparait dans la barre des tâches. Je lis le mail, et celle-ci ne disparait pas tant que je n'ai pas stopper VBA.
Ce n'est qu'un détail, mais si quelqu'un a une idée de la manière de corriger cela, je serais très content qu'il me la fasse partagée...
cs_happiness
Messages postés1Date d'inscriptionvendredi 14 juillet 2006StatutMembreDernière intervention15 décembre 2010 15 déc. 2010 à 23:38
Bonjour, je peux savoir ou vous avez place la fonction fairePause(), dans quel evenement ?
parcque j'ai le meme cas, je veux extraire les donnees depuis une BD et les envoyer vers des utilisateurs
j'en ai vraiment besoin
Merci :)