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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 090
    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 090
    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 090
    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 090
    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 090
    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 090
    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).

+ Répondre à la discussion
Cette discussion est résolue.

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