none
Automatisation d'Excel 2003 à l'aide de VBScript (C# 2.0, Windows 7 x64) RRS feed

  • Discussion générale

  • Bonjour,

    J'ai une application distribuée écrite en C# 2.0, elle se compose d'un service windows qui tourne sur un server, il reçoit des jobs à exécuter et les envoies à des services windows (d'exécution) qui tournent sur des machine de calcul (avec les droits admin)

    Ce service windows reçoit un flux binaire et le persiste localement sur la machine de calcul sous forme de DLL avant de lancer la méthode Start() de la classe sérialisable qui représente le job.

    La méthode Start() créé et lance un Process (avec un .bat en paramètre), le batch est tout simplement la commande "csript file.vbs [arguments]"

    Le fichier vbs exécute grosso-modo les lignes suivantes :

    Code :
    Set xlobj = WScript.CreateObject("Excel.Application")
    
    Set workbooks = xlobj.WorkBooks
    
    Set objWorkbook = workbooks .Open(excelFile,updateLinks,readonly)
    
    Set InputSheet = objWorkbook.Sheets(InputSheetName)
    
    //…
    
    Set some variables values in a InputSheet
    
    Xlobj.Calculate() 
    
    Set outputSheet = objWorkbook.Sheets(outputSheetName)
    
    outPutSheet.saveAs outputFileNameFull, 6 //as .cvs file.
    Sur une machine windows 7 (x64) il n'y a aucun pb à exécuter le batch directement, cependant, quand il est lancé via l'appli (ç-à-d par le service windows d'exécution). On a l'erreur suivante :

    Error (1004) description : Impossible de lire la propriété Open de la classe Workbooks.

    Une version C# du VBS s'exécute elle aussi sans soucis directement sur la machine mais plante via l'appli avec l'erreur :

    Exception de HRESULT : 0x800A03EC

    Par ailleurs, tout se passe bien sur une grille de machines XP SP2 à l'exception d'une seule qui présente les même symptômes que la "Windows 7"

    Merci d'avance pour votre aide.
    jeudi 18 novembre 2010 16:13