Bonjour le forum,
Je me tourne vers vous car je fais fasse à un problème de compréhension.
Voici mon environnement :
J'ai une macro qui se lance à l'ouverture et effectue les taches suivantes :
- Arrêt du calcul automatique
- Mise à jour des connexions existantes entre mon fichier Excel et une Base de données Access,
- Remise en place de formules diverses (très léger),
- Remise en place du calcul automatique,
- Sauvegarde des modifications,
- Fermeture d'Excel.
Mon fichier est très lourd (+ de 100 Mo lié à un fort volume de formule), donc mon traitement de mise à jour demande un certain temps.
J'ai donc programmé le lancement d'une tache système qui vient, de nuit, lancer l'ouverture de mon fichier (et par la même ma procédure de mise à jour).
J'ai observé, en lançant manuellement l'ouverture de mon fichier que son traitement s'effectuait correctement avec un délai de 25 minutes.
Or, en lançant l'ouverture de mon fichier par ma tâche système, j'observe que le délai de traitement ne prend que 18 minutes et que l'actualisation de mes connexions Access => Excel n'a pas le temps de se finaliser.
Voici pour ce qui est de mon environnement.
J'ai donc souhaité programmer une temporisation dans mon fichier Excel pour permettre la bonne finalisation de l'actualisation de mes connexions lors du lancement via la tache système.
Pour cela j'ai utilisé la ligne de code :
Application.Wait Now + TimeValue("00:10:00")
Après avoir observé que cela ne fonctionnait pas, j'ai étudié de plus près la méthode Wait et si j'ai bien compris ce que j'ai pu lire sur l'aide Windows, cette méthode "Wait suspend toute activité Excel jusqu’à ce que la période d’attente soit écoulée" (et par la même l'actualisation de mes connexions).
Je me suis alors tourné vers la méthode OnTime.
Ce qui m'amène à ma question.
Es ce que cette méthode suspend toutes activités Excel au même titre que la méthode Wait ?
Pour finir, j'ai un problème de compréhension de la construction de cette méthode :
OnTime(EarliestTime, Procedure, LatestTime, Schedule)
J'ai compris que les paramètres LatestTime et Schedule étaient optionnels ainsi que le fonctionnement du paramètre EarliestTime.
Mais c'est le paramètre Procedure qui me pose problème. Je dois y indiquer le nom de la macro qui doit se lancer à la fin du temps EarliestTime mais comment ? (en mettant simplement le nom de ma macro, avec des parenthèse, en définissant ma macro comme constante ou variable avant, ... ?)
Espérant avoir été le plus clair possible dans mes explications et ma question, je vous remercie par avance pour le temps que vous pourrez accorder à ma requête.
Cordialement.
Je me tourne vers vous car je fais fasse à un problème de compréhension.
Voici mon environnement :
J'ai une macro qui se lance à l'ouverture et effectue les taches suivantes :
- Arrêt du calcul automatique
- Mise à jour des connexions existantes entre mon fichier Excel et une Base de données Access,
- Remise en place de formules diverses (très léger),
- Remise en place du calcul automatique,
- Sauvegarde des modifications,
- Fermeture d'Excel.
Mon fichier est très lourd (+ de 100 Mo lié à un fort volume de formule), donc mon traitement de mise à jour demande un certain temps.
J'ai donc programmé le lancement d'une tache système qui vient, de nuit, lancer l'ouverture de mon fichier (et par la même ma procédure de mise à jour).
J'ai observé, en lançant manuellement l'ouverture de mon fichier que son traitement s'effectuait correctement avec un délai de 25 minutes.
Or, en lançant l'ouverture de mon fichier par ma tâche système, j'observe que le délai de traitement ne prend que 18 minutes et que l'actualisation de mes connexions Access => Excel n'a pas le temps de se finaliser.
Voici pour ce qui est de mon environnement.
J'ai donc souhaité programmer une temporisation dans mon fichier Excel pour permettre la bonne finalisation de l'actualisation de mes connexions lors du lancement via la tache système.
Pour cela j'ai utilisé la ligne de code :
Application.Wait Now + TimeValue("00:10:00")
Après avoir observé que cela ne fonctionnait pas, j'ai étudié de plus près la méthode Wait et si j'ai bien compris ce que j'ai pu lire sur l'aide Windows, cette méthode "Wait suspend toute activité Excel jusqu’à ce que la période d’attente soit écoulée" (et par la même l'actualisation de mes connexions).
Je me suis alors tourné vers la méthode OnTime.
Ce qui m'amène à ma question.
Es ce que cette méthode suspend toutes activités Excel au même titre que la méthode Wait ?
Pour finir, j'ai un problème de compréhension de la construction de cette méthode :
OnTime(EarliestTime, Procedure, LatestTime, Schedule)
J'ai compris que les paramètres LatestTime et Schedule étaient optionnels ainsi que le fonctionnement du paramètre EarliestTime.
Mais c'est le paramètre Procedure qui me pose problème. Je dois y indiquer le nom de la macro qui doit se lancer à la fin du temps EarliestTime mais comment ? (en mettant simplement le nom de ma macro, avec des parenthèse, en définissant ma macro comme constante ou variable avant, ... ?)
Espérant avoir été le plus clair possible dans mes explications et ma question, je vous remercie par avance pour le temps que vous pourrez accorder à ma requête.
Cordialement.