Bonjour,
Voila le code de mon module. Le module efface 3 tables par lintermediaire dune requete prevu dans une macro.Ensuite, le module importe 3 fichiers excel dans des tables.
Le but du module est de maintenir à jour toutes les 5 secondes 3 tables.
Le module se lance lorsque lon clique sur un bouton.
J'aimerai qu'une fois le bouton cliqué, le code du module il se relance toutes les 5 secondes.
voici le code:
cest cette partie qui empeche le lancement de la suite du module car si je lenleve limportation se passe bien mais avec ca, ca ne fait rien du tout:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub PROC() Dim stDocName As String Application.OnTime Now + TimeValue("00:00:05"), "PROC" stDocName = "SUPRESSION" DoCmd.RunMacro stDocName ArticleParFamille = "U:\lien.xls" 'Chemin d'access du fichier strArticleParFamille = "liens" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strArticleParFamille, ArticleParFamille, True, "" ArticleParFamille2 = "U:\Devises.xls" 'Chemin d'access du fichier strArticleParFamille2 = "Devises" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strArticleParFamille2, ArticleParFamille2, True, "" ArticleParFamille3 = "U:\Valeur Produit.xls" 'Chemin d'access du fichier strArticleParFamille3 = "Valeur Produit" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strArticleParFamille3, ArticleParFamille3, True, "" End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.OnTime Now + TimeValue("00:00:05"), "PROC"
Jai trouvé ca:
Mais je narrive pas à le faire fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Dim Lheure As Double Dim Interval As Integer Public Sub LancerTimer(NbS As Integer) 'L'application ExecutionTimer se lancera toutes les 0 heure, 0 minute et Interval seconde Interval = NbS ' la ligne suivante va lancer la procédure ExecutionTimer tous les intervalles secondes Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecutionTimer" End Sub Public Sub ArretTimer() 'Pour arrêter le timer, il suffit d'appeler cette procédure. On Error Resume Next Application.OnTime Lheure, "ExecutionTimer", , False End Sub Public Sub ExecutionTimer() 'code à exécuter à la fin de chaque Interval secondes 'mettez ici votre code 'code obligatoire Lheure = Now + TimeSerial(0, 0, Interval) Application.OnTime Lheure, "ExecutionTimer" End Sub
Jai fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Dim Lheure As Double Dim Interval As Integer Public Sub LancerTimer(NbS As Integer) 'L'application ExecutionTimer se lancera toutes les 0 heure, 0 minute et Interval seconde Interval = 5 ' la ligne suivante va lancer la procédure ExecutionTimer tous les intervalles secondes Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecutionTimer" End Sub Public Sub ArretTimer() 'Pour arrêter le timer, il suffit d'appeler cette procédure. On Error Resume Next Application.OnTime Lheure, "ExecutionTimer", , False End Sub Public Sub ExecutionTimer() 'code à exécuter à la fin de chaque Interval secondes 'mettez ici votre code 'code obligatoire Lheure = Now + TimeSerial(0, 0, Interval) Application.OnTime Lheure, "ExecutionTimer" End Sub
Partager