Microsoft 365 SCRIPT VBS / EXCEL

antoine94170

XLDnaute Nouveau
bonjour à tous

je suis nouveau sur le forum et ai besoins de vos connaissances pour débloquer une situation sur laquelle je bloque maintenant depuis 4 jours. :)

j'ai développer sous excel en VBA un ensemble de tableau de bord permettant de collecter des informations et de les rendre disponible via un affichage à des équipes sur le terrain.

je souhaite mettre à jour automatiquement toutes les 60 minutes les informations à jours et également le visuel sur les différents graphiques.

je pense qu'une solution est l'utilisation des tâches planifiées.

Je n'ai pas une grande connaissance en VBS pour écrire les tâches planifiées mais ai déjà écrit le code ci dessous (qui fonctionne sans problème) me permettant d'ouvrir mon fichier excel de lancer la maccro puis d'enregistrer le fichier excel et de le refermer.

Dim Xl
dim wk
Set Xl = WScript.CreateObject("EXCEL.application")
Xl.Visible = True
Xl.enableevents=false
set Wk = Xl.workbooks.open("\\GANESHA\mfr\1. Supply Chain\14. Projets SC\DASHBOARD SUPPLY CHAIN\DASHBOARD SUPLY CHAIN GLOBAL\DASHBOARD SUPPLY CHAIN GLOBAL_V14.xlsm")
Xl.Run "mise_a_jour_outil_planificateur"
wk.save
wk.close
xl.quit

je souhaite donc à partir de mon fichier excel déjà ouvert exécuter via tache planifiée (me permettant ainsi de la répéter toutes les 60 minutes la tâche) qui me lancera la macro "mise_a_jour_outil_planificateur"

je suppose qu'il faut remplacer le code ci dessous par une instruction permettant de sélectionner le fichier Excel pour ensuite lancer la macro.

set Wk = Xl.workbooks.open("\\GANESHA\mfr\1. Supply Chain\14. Projets SC\DASHBOARD SUPPLY CHAIN\DASHBOARD SUPLY CHAIN GLOBAL\DASHBOARD SUPPLY CHAIN GLOBAL_V14.xlsm")


j'ai essayé différentes solutions mais sans résultat et n'ai pas trouvé de réponse sur les différents forums sur internet.


je m'en remet donc à vos expériences

merci d'avance pour votre support

Antoine
 

fanch55

XLDnaute Barbatruc
Bonjour,
Le plus simple, c'est d'appeler le planificateur de taches de Windows :
1630252733757.png
 

job75

XLDnaute Barbatruc
Bonjour antoine94170, fanch55,

Si la macro de mise à jour se trouve dans le fichier Pilote.xlsm il faut en effet planifier l'ouverture de ce fichier toutes les 60 minutes, cela se fait manuellement avec le planificateur de tâches.

Et pour exécuter la macro de mise à jour mettre dans le ThisWorkbook de ce fichier :
VB:
Private Sub Workbook_Open()
Application.OnTime 1, "ThisWorkbook.MAJ"
End Sub

Sub MAJ()
Application.EnableEvents = False
With Workbooks.Open("\\GANESHA\mfr\1. Supply Chain\14. Projets SC\DASHBOARD SUPPLY CHAIN\DASHBOARD SUPLY CHAIN GLOBAL\DASHBOARD SUPPLY CHAIN GLOBAL_V14.xlsm")
    mise_a_jour 'lance la macro (nom à adapter)
    .Close True
End With
Application.EnableEvents = True
Me.Saved = True 'au cas où...
If Workbooks.Count = 1 Then Application.Quit Else Me.Close
End Sub
A+
 

dysorthographie

XLDnaute Accro
Bonsoir,
Je ne comprends pas, tu as créé un fichier Vbscript qui fait le travail !

C'est lui que le planificateur de tâches doit exécuter.
remplace l'extension txt pas VBS!

 

Pièces jointes

  • GLOBAL_V14.txt
    384 bytes · Affichages: 15
Dernière édition:

Statistiques des forums

Discussions
311 723
Messages
2 081 932
Membres
101 844
dernier inscrit
pktla