IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur de script "DynamicLoader" est indéfini [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut Erreur de script "DynamicLoader" est indéfini
    Bonjour,

    cela fait un an maintenant que j'exécute en batch des macros sur un fichier .XLSM. Tout se passait très bien jusqu'au 8 avril 5h00 inclus. À partir de cette date, sans rien faire et pour cause, j'étais dans une clinique jusqu'au 9 dans l'après-midi et il n'y a que moi qui ait accès à mon ordinateur, j'ai un message d'anomalie :

    Erreur de script
    Une erreur est survenue dans le script de cette page
    Ligne 20
    Caractère 9
    Erreur "DynamicLoader" est indéfini
    Code 0
    URL: ms-pq://pq.microsoft.com/Views/TaskPane/QueriesAnd Connections TaskPane.htm
    Voulez-vous continuer à exécuter les scripts de cette page
    boutons Oui Non

    Ce message est bloquant. Il laisse une instance d'EXCEL active qui empêche l'utilisation de tout autre feuille EXCEL. Il faut intervenir avec le gestionnaire de tâches pour supprimer cette instance d'EXCEL.

    Microsoft 365 se met à jour automatiquement dès qu'il y a une nouvelle version (valeur par défaut). Actuellement j'ai la version 2503 build 16.0.18623.20178 64 bits. Cette version date du 8 avril justement et la relation de cause à effet est facile, mais je me méfie des coïncidences...

    J'ai bien pensé faire marche arrière sur la version, mais je ne sais pas faire et ce n'est pas une solution car cela bloque toutes les mises à jour ultérieures.

    Que signifie cette erreur et avez-vous une idée de ce qu'il me faudrait faire pour retrouver une situation normale ?

    Merci d'avance pour votre expertise.

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 092
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Tout ce que je peux dire c'est que visiblement vous n'êtes pas seul avec ce soucis mais pour l'instant aucune réponse valable
    https://stackoverflow.com/questions/...is-not-defined
    :bug:

  3. #3
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    Merci de votre réponse.

    En cherchant sur internet, je n'avais pas trouvé le post sur Stackoverflow (il a dû être créé après mes recherches), mais j'avais trouvé celui sur la communauté Microsoft. Comme il datait de septembre 2023, j'avais pensé qu'une solution avait été trouvée mais pas reportée dans le post. Je me demande comment ils ont fait pour s'en sortir car ce problème est très embêtant, il bloque des traitements automatisés et implique des interventions manuelles.

  4. #4
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 092
    Billets dans le blog
    2
    Par défaut
    Re,

    au vu du code d'erreur il semblerait qu'il plante dans le code du volet des requêtes d'Excel

    URL: ms-pq://pq.microsoft.com/Views/TaskPane/QueriesAnd Connections TaskPane.htm
    Je n'ai jamais développé de volet et c'est un fichier htm donc du web, donc au-delà de mes compétences
    D'autre part le code des volets natifs de Microsoft est-il ouvert à modification par un utilisateur ? je l'ignore et ça m'étonnerait, mais je pourrais me tromper

    Après l'erreur apparaît ici mais peut-être est-elle due à un élément en amont, et là je ne sais pas où chercher
    Bref tout ça pour dire que je ne sais pas grand chose sur le sujet
    :bug:

  5. #5
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    Ce n'est pas non plus dans mes cordes... Je ne sais même pas ce qu'est un volet natif de Microsoft

    Je vais suivre le forum StackOverflow pour voir s'ils ont plus d'éléments. Personnellement je suspecte un bug lié à la dernière mise à jour de 365. Si c'est le cas Microsoft devrait réagir car l'erreur est bloquante.

    En tout cas merci.

  6. #6
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 092
    Billets dans le blog
    2
    Par défaut
    Re,

    Je ne sais même pas ce qu'est un volet natif de Microsoft
    J'ai utilisé ce terme pour les volets qui apparaissent (en général à droite de l'écran) pour modifier les options de certains objets
    Par exemple pour modifier les requêtes faites avec Power Query, ou pour modifier les options fines d'un composant d'un graphique
    "natif" pour dire développé par Microsoft, puisqu'il est également possible de programmer ses propres volets (si on télécharge par exemple des compléments développés par d'autres que Microsoft)
    https://learn.microsoft.com/fr-fr/vi...22&tabs=csharp

    Mais tout ça ne fait pas avancer le schmillblick
    :bug:

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Hello,
    Le problème vient probablement d'une source dynamique qui ne se charge pas ou plus (le message d'erreur fait référence au panneau de tâche des requêtes et connexions (power query). As-tu ce genre de chose dans ton classeur ? Si oui :
    Lorsqu'il s'agit d'erreurs impliquant des sources dynamiques dans Power Query, il est souvent utile de s'assurer que les fichiers sources ou les URL sont correctement référencés et accessibles. Si le fichier source est dynamique et peut ne pas exister lorsque le fichier Excel est ouvert, vous pouvez désactiver le rafraîchissement automatique des données Power Query lors de l'ouverture de la feuille de calcul Excel.
    Pour corriger l'erreur "DynamicLoader", vous pouvez vérifier ce qui suit:

    • Assurez-vous que toutes les sources de données externes sont correctement référencées et accessibles.
    • Désactivez l'actualisation automatique des données Power Query lors de l'ouverture du fichier Excel pour éviter les erreurs dues à des sources manquantes ou inaccessibles.


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  8. #8
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    Effectivement, j'ai quelque chose de ce genre dans ce classeur Excel.
    Le fichier source est un fichier .csv qui existe et qui est accessible au moment de l'incident.

    Le principe:

    1- Un fichier .csv est généré en amont
    2- Une fois ce fichier .csv créé, une macro du classeur Excel prend la main et fait une mise à jour des feuilles du classeur à partir de ce fichier .csv
    3- Cette mise à jour terminée une deuxième macro prend la main et constinue un fichier .txt qui servira d'entrée à une application
    4- L'application prend la main et réalise des traitements

    Ces 4 étapes sont enchaînées dans une même procédure batch. Le problème se produit à l'étape 2. Le fichier .csv existe et est correct à l'étape 2. Je rappelle que ces enchaînements tournent en automatique tous les jours depuis un an, sans problème et que je n'ai absolument rien fait comme modification. La seule modif potentielle serait la mise à jour automatique de 365.

    Je ne suis pas du tout expert en Excel et j'avais eu beaucoup de mal à mettre enchaînement et macros au point à l'époque.

    Ci dessous la macro que je lance en automatique par l'intermédiaire d'un fichier de commande :

    Sub Updt()
    'Stop
    Dim num
    Sheets("Catlg").Select
    ActiveWorkbook.RefreshAll
    'ActiveWorkbook.Connections("Requête*-*Catlg").Refresh
    num = ActiveSheet.UsedRange.Rows.Count
    'MsgBox num
    ActiveWorkbook.Save

    Sheets("Centra").Select
    Range("A3:O65536").ClearContents
    Range("A2:O2").Select
    Selection.AutoFill Destination:=Range("A2:O" & num), Type:=xlFillDefault
    Range("A1").Select

    Sheets("Résumé").Select
    Range("A3:B65536").ClearContents
    Range("A2:B2").Select
    Selection.AutoFill Destination:=Range("A2:B" & num), Type:=xlFillDefault
    Range("A1").Select

    Sheets("Centra").Select
    ActiveWorkbook.Save
    Application.Quit
    End Sub
    Ci-dessous la commande de lancement depuis un fichier batch :
    "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" /cmd/updt "Centra-base.xlsm"
    Ci-dessous les macros situées dans workbook open, permettant le lancement de la macro updt :
    Private Declare PtrSafe Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As LongPtr
    Private Declare PtrSafe Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As LongPtr) As Long
    Private Declare PtrSafe Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As LongPtr) As Long

    Private Function GetCmd() As String
    Dim lpCmd As LongPtr
    lpCmd = GetCommandLine()
    GetCmd = Space$(lstrlen(ByVal lpCmd))
    lstrcpy ByVal GetCmd, ByVal lpCmd
    End Function
    Private Sub Workbook_Open()
    Dim macmdline As Variant
    Dim monparam As Variant 'déclare une variable
    Dim macmd As Variant 'déclare une variable

    macmdline = GetCmd 'affecte la valeur de la ligne de commande
    If Not IsNull(macmdline) Then 'si la variable est nulle
    If Len(macmdline) > 0 Then 'on s'assure qu'il y a eu une ligne de commande passée
    If InStr(macmdline, "/cmd") > 0 Then
    macmdline = Replace(macmdline, ThisWorkbook.FullName, "", , , vbTextCompare)
    monparam = Split(macmdline, "/cmd")
    'MsgBox monparam(1)
    macmd = Split(monparam(1), " ")
    'MsgBox "0=>" & macmd(0) & "<="
    Application.Run Mid(macmd(0), 2)
    End If
    End If
    End If
    End Sub
    Il y a également une requête de nom catlg avec la case cochée : Actualiser cette connexion à la commande ActualiserTout
    La chaine de connexion est: Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Catlg;Extended Properties=''
    Type de commande SQL
    Texte de la commande SELECT * FROM [catlg]

  9. #9
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Citation Envoyé par Obelix84 Voir le message
    Le fichier source est un fichier .csv qui existe et qui est accessible au moment de l'incident.

    Le principe:

    1- Un fichier .csv est généré en amont
    2- Une fois ce fichier .csv créé, une macro du classeur Excel prend la main et fait une mise à jour des feuilles du classeur à partir de ce fichier .csv
    3- Cette mise à jour terminée une deuxième macro prend la main et constinue un fichier .txt qui servira d'entrée à une application
    4- L'application prend la main et réalise des traitements

    Ces 4 étapes sont enchaînées dans une même procédure batch.
    Hello,
    Dans le batch comment génères-tu le .csv ? es-tu sûr que le fichier .csv a fini d'être généré ou n'est pas verrouillé quand tu exécutes ta macro Excel ?
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  10. #10
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    Bonjour,

    Oui, je suis certain que le fichier .csv est complet et libre. Il est généré via le logiciel Calibre exécuté en batch. Cette étape est la première et l'ensemble des tâches est exécuté séquentiellement dans un même script.

    De plus j'ai essayé de passer l'enchainement une fois ce fichier généré et l'incident est le même. Il y a même eu des boot de la machine ce qui libèrerait le fichier s'il y avait un verrouillage quelconque. j'ai édité ce fichier et n'ai rien remarqué de suspect. Cet incident se produit avec la macro updt, vraisemblablement pendant "ActiveWorkbook.RefreshAll".

    Ce qui me gêne dans cette histoire c'est que ce traitement passe depuis un an tous les jours sans problème particulier jusqu'au 8 avril, et rien, mais rien n'a, été modifié de mon côté (je n'étais pas présent depuis 4 jours..., j'étais dans une clinique et seul moi ait accès à mon ordi).

  11. #11
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Hello,
    il y a parfois des problèmes de "contexte" quand on lance des logiciels dans le planificateur de tâche. Et pourquoi ne lances-tu pas directement ta macro d'update en utilisant un script vbs (fichier.vbs) exemple :
    Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With createObject ("Excel.Application") 
         .visible=False
         With .workbooks.open("D:\Dev\Office\Excel\Tache.xlsm")
            .application.run "MaTache"
           .save
           .close
         End with
        .quit
    End with

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  12. #12
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    Bonjour,

    si je lance la macro avec le planificateur de tâche, c'est parce que j'ai besoin de le faire. C'est une tâche répétitive journalière que je passe à 5h00 tous les matins. Si je n'utilisais pas le planificateur de tâche, il faudrait que je lance cette macro manuellement...

    Je ne pense pas que ce soit le planificateur de tâche qui soit en cause. Quand je lance manuellement la procédure, j'ai le même problème.
    Intuitivement je dirais que le problème vient de "ActiveWorkbook.RefreshAll", pb qui est apparu suite à une mise à jour de 365.

  13. #13
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 138
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 138
    Par défaut
    Bonjour,

    Pas sûr que mon idée soit la bonne mais je l'émet tout de même.

    Maintenant les exécutions que l'on pensait séquentielles ne le sont plus vraiment,
    et lors d'une mise à jour tu peux parfois t'apercevoir qu'un traitement
    s’exécute avant la fin du précédant dont tu as pourtant besoin du résultat.
    J’essaierais de voir si tu ne peux pas attendre la fin de chaque processus avant de lancer le suivant.
    Peut-être lancer séparément chaque phase en 4 batchs successifs.
    C'est ce que me suggère ton problème : bon courage.

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 308
    Par défaut
    Bonjour,
    Même impression qu'anasecu, pas sûr non plus pour ma suggestion.
    S'il y a eu une mise à jour de 365, les paramètres de confidentialité de Power Query ont peut-être été réinitialisés.
    Vérifie comme ceci :
    Onglet "Données", tu cliques sur "Obtenir des données", "Options de requête"
    Nom : Capture d'écran 2025-04-15 172934.png
Affichages : 73
Taille : 38,0 Ko

    Puis sous "Global", dans l'option "Confidentialité", tu vérifies bien que l'option "toujours ignorer...." est bien cochée
    Nom : Capture d'écran 2025-04-15 173202.png
Affichages : 76
Taille : 27,7 Ko

    Peut-être?

  15. #15
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    @ anasecu
    L'enchainement plante également lorsque je reprend les traitements après la constitution du fichier csv en pointant directement sur l'exécution de la macro updt. Ce n'est donc pas une question de taches qui se lanceraient avant que la précédente soit terminée.

    @ mapeh
    J'ai bien cru que tu avais gagné car effectivement l'option ignorer n'était pas cochée. J'ai relancé après avoir coché cette option, mais hélas le plantage a eu lieu de la même manière.

    @ tous

    J'ai refait une série de test après avoir isolé juste la partie concernant la macro updt :

    En manuel avec pas pas détaillé ==> OK, pas de message et tout se comporte normalement.

    En lancement par procédure batch ==> messages anomalies, mais résultats OK. Aux messages d'anomalies, je clique sur OUI à "voulez-vous continuer" et à la fin je supprime l'instance EXCEL bloquée par le gestionnaire de tâche.

    En lancement par procédure batch ==> messages d'anomalies, mais résultats OK en cliquant sur NON à "voulez-vous continuer" et à la fin je supprime l'instance EXCEL bloquée par le gestionnaire de tâche.

    En lancement par procédure batch ==> messages d'anomalies, mais résultats OK en ne répondant, ni OUI, ni NON, mais en supprimant l'instance EXCEL active par le gestionnaire de tâche.

    Ce dernier test montre que contrairement à ce que je croyais ce n'est pas dans la partie "ActiveWorkbook.RefreshAll" que le plantage a lieu, mais APRES la sauvegarde du ficjhier EXCEL dans "Application.quit"

    Pour étayer cette dernière affirmation, j'ai encadré "Application.quit" par des messages. À l'exécution en procédure batch j'obtiens bien ces messages, mais avec en plus une demande de sauvegarde commme si j'avais terminé EXCEL sans sauvegarder. En répondant "Enregistrer", tout fonctionne correctement.

    Dernier test toujours en batch. Le même que précedemment, mais j'ai répondu "Ne pas enregistrer" et là aussi tout fonctionne correctement...

    La sauvegarde a lieu dans la macro par "ActiveWorkbook.Save", c'est donc normal que le fichier soit bon, même sans répondre "Ne pas enregistrer".

    De cette série de tests, j'en déduit que l'anomalie se produit au moment de "Application.quit" dans la macro. Ce que je trouve curieux c'est d'obtenir un message APRES "Application.quit". On dirait une désynchronisation entre la demande et son exécution. Toujours est-il, que c'est dans cette exécution que ces messages d'anomalies apparaissent. Je n'ai pas assez de connaissances EXCEL et VB/VBA pour aller plus loin dans mes déductions.

    Qu'en pensez-vous ?

  16. #16
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Hello,
    tu peux toujours essayer d'exécuter ta macro dans un vbscript même si tu es sceptique. J'ai créé un petit test pour montrer comment cela fonctionne.
    1 - Je crée un fichier batch cmd dans lequel je lance mon vbscript ( LaTache.cmd )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    Echo "%time% ETAPE 1" >> "d:\dev\office\Excel\Latache.Log"
    Echo "%time% ETAPE 2" >> "d:\dev\office\Excel\Latache.Log"
    cscript "d:\dev\office\Excel\matache.vbs"
    Echo "%time% ETAPE 3" >> "d:\dev\office\Excel\Latache.Log"
    Echo "%time% ETAPE 4" >> "d:\dev\office\Excel\Latache.Log"
    2 - voici ce qu'il y a dans le fichier vbscript (matache.vbs)
    Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With createObject ("Excel.Application")
          .visible=False
         With .workbooks.open("D:\Dev\Office\Excel\Tache.xlsm")
            .application.run "MaTache"
           .save
           .close
          End with
        .quit
    End with
    Dans le classeur Tache.xlsm la macro matache incrémente de 1 la cellule A1 de la feuille.
    En pièce jointe l'ensemble des fichiers. Ajuster le répertoire utilisé dans le .cmd et le .vbs. A noter que le save je le fais dans le vbscript et pas dans la macro.
    J'ai fait exécuter le .cmd par le planificateur de tâches avec une exécution répétée toutes les 5 minutes. Cela semble fonctionner.

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  17. #17
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 121
    Par défaut
    Hello,

    et en ajoutant Application.DisplayAlerts = False avant le Application.Quit ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  18. #18
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    Citation Envoyé par Nain porte koi Voir le message
    et en ajoutant Application.DisplayAlerts = False avant le Application.Quit ?
    J'avais déjà essayé. Cela ne fonctionne pas.

    @tous

    La solution de jurassic pork fonctionne, grand, grand merci à lui.

    Je suis en train d'adapter mes procédures. J'ai quelques soucis avec les variables d'environnement et la localisation des procédures vbs via cscript, commande que je viens de découvrir, mais je pense en venir à bout tout seul.

    Quand tout sera opérationnel, je reviendrai vers vous. En attendant merci à tous.

  19. #19
    Membre averti Avatar de Obelix84
    Homme Profil pro
    Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)
    Inscrit en
    Octobre 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité (ancien ingénieur système sur gros systèmes Bull/Ibm)

    Informations forums :
    Inscription : Octobre 2019
    Messages : 52
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    tu peux toujours essayer d'exécuter ta macro dans un vbscript même si tu es sceptique. J'ai créé un petit test pour montrer comment cela fonctionne.
    Encore une fois merci pour cette solution élégante et qui fonctionne. Je n'ai jamais été sceptique, je n'avais pas compris ce que tu m'avais initialement proposé et je ne connaissais pas l'existance de la commande cscript. Lorsque j'avais galéré pour mettre au point cette automatisation, nul ne m'en avais parlé. J'ajoute également que je ne pratique pas le vbs et n'en ai qu'un vernis très superficiel.

    Mon application est opérationnelle, je viens de la tester. Je ne met pas ce sujet en résolu tout de suite, mais promis je le ferai après quelques passages en automatique.

    Deux questions :

    - Pour trouver les scripts existe-t'il un système comme le PATH ?
    En fait j'ai voulu implanter les scripts VBS ailleurs que dans le répertoire actif sans avoir à préciser le chemin complet et je n'ai pas trouvé comment faire.

    - Pour paramétrer le scipt VBS j'ai utilisé WshProcessEnv("nom-de-variable") qui m'a permis d'accéder aux varaibles d'environnement, existe-t-il une autre technique ?

    Et une petite dernière pour la route, qui n'a rien à voir avec l'objet de ce thread.
    - J'ai un problème avec une police de caractère et j'aimerai bien poser la question sur le forum, mais je n'ai pas trouvé où. À quel endroit puis-je le faire ?

  20. #20
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 193
    Par défaut
    Citation Envoyé par Obelix84 Voir le message
    Deux questions :

    - Pour trouver les scripts existe-t'il un système comme le PATH ?
    En fait j'ai voulu implanter les scripts VBS ailleurs que dans le répertoire actif sans avoir à préciser le chemin complet et je n'ai pas trouvé comment faire.

    - Pour paramétrer le scipt VBS j'ai utilisé WshProcessEnv("nom-de-variable") qui m'a permis d'accéder aux varaibles d'environnement, existe-t-il une autre technique ?

    Et une petite dernière pour la route, qui n'a rien à voir avec l'objet de ce thread.
    - J'ai un problème avec une police de caractère et j'aimerai bien poser la question sur le forum, mais je n'ai pas trouvé où. À quel endroit puis-je le faire ?
    Hello,
    pour lire les variables d'environnement tu peux faire comme ceci (exemple) :
    Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set objShell = WScript.CreateObject("WScript.Shell")
    WScript.Echo objShell.Environment("USER").Item("PATH")
    voir ici (en plus tu as toutes les commandes vbscript)
    Pour ton problème de police de caractères, pose ta question ici pour voir si on peut te répondre ou t'aiguiller ailleurs.
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Erreur de script : "style a la valeur null ou n'est pas un objet"
    Par Renzokuken dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/12/2009, 14h32
  2. Réponses: 1
    Dernier message: 22/10/2009, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo