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

ASP.NET Discussion :

[ASP.Net] Exécuter macro sur 2 fichiers Excel liéé


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    bachelier en informatique industrielle
    Inscrit en
    mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : bachelier en informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut [ASP.Net] Exécuter macro sur 2 fichiers Excel liéé
    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 !.

  2. #2
    Candidat au Club
    Homme Profil pro
    bachelier en informatique industrielle
    Inscrit en
    mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : bachelier en informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je vient de m'apercevoir qu'en local (non debug) le code bloque au niveau du open, pourtant j'ai ajouté les autorisations NETWORK SERVICE au DCOM et au dossier des fichier Excel.

    d’ailleurs un processus appeler: Excel / utilisateur : NETWORK SERVICE est en cours de fonctionnement mais, sa n'explique pas pour quoi la date de modification du fichier change

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    mais tu veux faire quoi exactement. tu veux piloter excel depuis une page asp? chaud :-d

  4. #4
    Candidat au Club
    Homme Profil pro
    bachelier en informatique industrielle
    Inscrit en
    mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : bachelier en informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    No, juste exécuté une macro de mise à jours d'un fichier liée

    J'ai finalement trouvé le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oBook = oBooks.Open("../../../DocumentExcel/Destination.xls", oMissing, oMissing,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
    Le paramètre qui suit le nom du fichier excel indique si on veux chargé les liaison, il suffit alors de mètre "0"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oBook = oBooks.Open("../../../DocumentExcel/Destination.xls", 0, oMissing,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2017, 16h55
  2. [Toutes versions] Création de macro sur 2 fichiers excel
    Par Tivi31 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/03/2015, 13h48
  3. Réponses: 1
    Dernier message: 11/02/2011, 14h14
  4. [XL-2003] Exécuter une macro sur 2 fichiers excel en même temps..
    Par visto94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/07/2010, 14h09
  5. Macros sur Plusieurs fichiers Excel
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 11h21

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