Bonjour, je suis nouveau

Apres 2 jours de recherche je décide à poster sur le forum qui m'apporte le plus de réponses.

Mon problème :

j'ai 2 fichiers execel (Source.xls et Destination.xls) les 2 sont liée par un collage spéciale.

dans le document Destination.xls se trouve une macro "refresh" qui met à jours la référence du collage et enregistre le document, macro pas trop méchante.

La macro fonctionne parfaitement sous l'environnement excel, sans aucun message de demande de confirmation.

Sous une page ASP.net:
En mode debug, après avoir pressé mon bouton un message me signalant qu'un liaison entre différent document existe, me demandant si oui ou non je veux réaliser l'opération.
(que je clique sur oui ou non, la macro fait sont travaille correctement)

En mode local (sans debug) avec IIS, âpres la pression sur le bouton, rien ne se passe, est la page charge pendant +- 1 minute, pendant se temps la si j'essai d'ouvrire le doc avec excel, il m'indique qu'il est en lecture seul.

après la minute, le doc n'a pas été mis à jours.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 // Object for missing (or optional) arguments.
        object oMissing = System.Reflection.Missing.Value;
 
        ApplicationClass oExcel = new ApplicationClass();
 
        oExcel.Visible = false;
        Excel.Workbooks oBooks = oExcel.Workbooks;
        Excel._Workbook oBook = null;
        //oBook = oBooks.Open(@"c:\DocumentExcel\Destination.xls", oMissing, oMissing,
        //    oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
        //    oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
 
        oBook = oBooks.Open("../../../DocumentExcel/Destination.xls", oMissing, oMissing,
            oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
            oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
 
        //// Run the macros.
        RunMacro(oExcel, new Object[] { "MyUpdateMacro" });
 
        //// Quit Excel and clean up.
        oBook.Close(true, oMissing, oMissing);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
        oBook = null;
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
        oBooks = null;
        oExcel.Quit();
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
        oExcel = null;
    }
 
    private void RunMacro(object oApp, object[] oRunArgs)
    {
 
        oApp.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod,null, oApp, oRunArgs);
 
    }
Merci de vos suggestion est de votre aide !.