[SQL Agent] Lancer une macro Excel

Pour un client qui voulait automatiser la génération de fichiers Excel en fonction de paramètres situé dans un autre fichier Excel, j’ai créer un package SSIS qui lit le fichier de configuration, remplace quelques valeurs dans le fichier puis lance la macro.

Ok rien de fou dans tout ça, je developpe, ça fonctionne … parfait.
On déploie, créé un petit job SQL agent, on lance et PAFF ! Aucun résultat !
Le Job se termine étonnement vite et surtout sans erreur. Le fichier est copié dans un autre répertoire mais pas modifié !

Mais pourquoi ? Les droits d’accès ? Non ! l’assembly Excel Interop non référencé sur le serveur ? Non !
What else ?

Hé bien en cherchant pas mal de temps, je suis tombé sur cet article avec ce petit paragraphe :

In debug mode, this all worked and the task could be scheduled and executed in windows scheduler. However, when the the tasked was scheduled (SQL Server agent) or scheduled to run when a user was not logged in there would be be errors

Bon moi j’ai pas de message d’erreur, la proposition de correction me semble pourri mais après tout créer 2 dossiers, ça se tente !
Je créer donc les deux dossier suivants qui n’existaient pas :

  • C:\Windows\System32\config\systemprofile\Desktop
  • C:\Windows\SysWOW64\config\systemprofile\Desktop

Et TADAAAaaa ! Ca fonctionne, dans le doute je me garde ça sous le coude et je le partage.

 

PS : Un peu la flemme d’aller cherche pourquoi, mais certainement un dossier de travail nécessaire pour l’assembly Excel Interop avec les macros !

Cet article a été publié dans SQL. Enregistrer le permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *