Bonjour le forum, bonjour chers Excelliens,
Débutant en Vba, j'ai tenté quelques essais, réalisé quelques recherches mais sans résultats pour le moment...
Ma problématique se situe sur la non-réalisation de boucle dans mes timers (procédures événementielles avec Application.OnTime).
J'ai pu lire que les timers doivent être ré-armés pour fonctionner à nouveau, et là est bien mon problème puisque je souhaite que ma macro exécute mes procédures tous les jours aux mêmes heures.
Je dispose d'une macro qui calcule et envoie des feuilles du classeur à différentes heures
dans la journée (9 feuilles pour 9 envois par des procédures automatisées via Outlook et ClicYes). Etant en permanence ouvert sur un pc connecté 24/24, je ne souhaite pas utiliser les tâches planifiées par Windows.
Voici un extrait de ma "cuisine":
Code Thisworkbook
Au démarrage, j’indique les heures de déclenchement de mes 9 timers et je lance un premier démarrage pour me faire saisir les mots de passe de mes requêtes Starquery. Chaque timer va lancer la requête associée et envoyer automatiquement le résultat (copié sur une feuille annexe) par emails aux destinataires choisis.
Private Sub Workbook_Open()
Application.Run "Démarrage"
'démarrage des starquery en décalage avec l'utilisation de Application.Wait
Application.OnTime TimeValue("11:00:00"), "timer1"
'timer1 lancement automatique feuille1
Application.OnTime TimeValue("11:05:00"), "timer2"
'timer2 lancement automatique feuille2
"Et tout cela avec les 9 timers... les timer1 et 2 serviront d'exemples"
End Sub
Code Module1 (Exemple d'écriture que j'ai développé pour les 9 timers)
Sub timer1()
'lancement mise à jour feuille1
Call UpdBtn_Mettre___jour
'MAJ calculs (pas important pour mon problème)
Call SendEMailwithAttachments
'Message Outlook (pas important pour mon problème)
Call Armetimer1
'code pour réarmer le timer1
End Sub
Sub timer2()
'lancement mise à jour feuille2
Call UpdBtn_Mettre___jour
'MAJ calculs (pas important pour mon problème)
Call SendEMailwithAttachments
'Message Outlook (pas important pour mon problème)
Call Armetimer2
'code pour réarmer le timer2
End Sub
Sub Armetimer1()
'code pour réarmer le timer1
If Time > TimeValue("11:00:00") Then
Application.OnTime Date + 1 + TimeValue("11:00:00"), "timer1"
Else
Application.OnTime TimeValue("11:00:00"), "timer1"
End If
End Sub
Sub Armetimer2()
'code pour réarmer le timer2
If Time > TimeValue("11:05:00") Then
Application.OnTime Date + 1 + TimeValue("11:05:00"), "timer2"
Else
Application.OnTime TimeValue("11:05:00"), "timer2"
End If
End Sub
ps : les procédures de mises à jour de mes calculs ainsi que celles qui expédient les messages Outlook fonctionnent parfaitement.
Merci par avance pour votre aide et vos précieux conseils, mon sac de noeuds dispose de nombreuses pistes sur la toile et je pense avoir tout mélangé désormais.
Dans cette attente, très bonne journée à tous.
BudBundy.
Débutant en Vba, j'ai tenté quelques essais, réalisé quelques recherches mais sans résultats pour le moment...
Ma problématique se situe sur la non-réalisation de boucle dans mes timers (procédures événementielles avec Application.OnTime).
J'ai pu lire que les timers doivent être ré-armés pour fonctionner à nouveau, et là est bien mon problème puisque je souhaite que ma macro exécute mes procédures tous les jours aux mêmes heures.
Je dispose d'une macro qui calcule et envoie des feuilles du classeur à différentes heures
dans la journée (9 feuilles pour 9 envois par des procédures automatisées via Outlook et ClicYes). Etant en permanence ouvert sur un pc connecté 24/24, je ne souhaite pas utiliser les tâches planifiées par Windows.
Voici un extrait de ma "cuisine":
Code Thisworkbook
Au démarrage, j’indique les heures de déclenchement de mes 9 timers et je lance un premier démarrage pour me faire saisir les mots de passe de mes requêtes Starquery. Chaque timer va lancer la requête associée et envoyer automatiquement le résultat (copié sur une feuille annexe) par emails aux destinataires choisis.
Private Sub Workbook_Open()
Application.Run "Démarrage"
'démarrage des starquery en décalage avec l'utilisation de Application.Wait
Application.OnTime TimeValue("11:00:00"), "timer1"
'timer1 lancement automatique feuille1
Application.OnTime TimeValue("11:05:00"), "timer2"
'timer2 lancement automatique feuille2
"Et tout cela avec les 9 timers... les timer1 et 2 serviront d'exemples"
End Sub
Code Module1 (Exemple d'écriture que j'ai développé pour les 9 timers)
Sub timer1()
'lancement mise à jour feuille1
Call UpdBtn_Mettre___jour
'MAJ calculs (pas important pour mon problème)
Call SendEMailwithAttachments
'Message Outlook (pas important pour mon problème)
Call Armetimer1
'code pour réarmer le timer1
End Sub
Sub timer2()
'lancement mise à jour feuille2
Call UpdBtn_Mettre___jour
'MAJ calculs (pas important pour mon problème)
Call SendEMailwithAttachments
'Message Outlook (pas important pour mon problème)
Call Armetimer2
'code pour réarmer le timer2
End Sub
Sub Armetimer1()
'code pour réarmer le timer1
If Time > TimeValue("11:00:00") Then
Application.OnTime Date + 1 + TimeValue("11:00:00"), "timer1"
Else
Application.OnTime TimeValue("11:00:00"), "timer1"
End If
End Sub
Sub Armetimer2()
'code pour réarmer le timer2
If Time > TimeValue("11:05:00") Then
Application.OnTime Date + 1 + TimeValue("11:05:00"), "timer2"
Else
Application.OnTime TimeValue("11:05:00"), "timer2"
End If
End Sub
ps : les procédures de mises à jour de mes calculs ainsi que celles qui expédient les messages Outlook fonctionnent parfaitement.
Merci par avance pour votre aide et vos précieux conseils, mon sac de noeuds dispose de nombreuses pistes sur la toile et je pense avoir tout mélangé désormais.
Dans cette attente, très bonne journée à tous.
BudBundy.