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

C# Discussion :

[C#][Excel] Récupération de "Feuille" d'une instance Excel Ouverte.


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut [C#][Excel] Récupération de "Feuille" d'une instance Excel Ouverte.
    Bonjour,
    J'ai actuellement un Enorme fichier Excel qui prend du temps à démarrer.
    Tous les matins il est chargé avec le démarrage du poste.

    L'objectif est de créer une application C# capable d'interragir avec ce document, sans ouvrir une nouvelle instance de ce fichier.

    Ici j'ai un code qui m'ouvre une instance de ce fichier à partir de son chemin relatif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Excel._Application xlApp;
    Excel._Workbook xlClasseur;
    Excel._Worksheet xlFeuill1;
     
     
    xlApp = new Excel.Application();
    xlApp.Visible = true;
    xlClasseur = xlApp.Workbooks.Open(fileName.ToString(), Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing);
    Mais j'aimerais charger mon objet "Excel._Application " (Ici xlApp) avec le document déja ouvert, sachant que je ne connais pas forcément son chemin relatif sur la machine (Il sera ouvert et chargé en mémoire).

    Quelqu'un aurait une idée ?

  2. #2
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut
    Voici la réponse :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    using System.Runtime.InteropServices;
     
    {...}
     
    public partial class Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
     
        protected void btn_Envoyer_Click(object sender, EventArgs e)
        {
            object M = System.Reflection.Missing.Value;
            Excel._Application xlApp = null;
     
            try
            {            
                try
                {
                    // Recherche si une instance Excel est active
                    xlApp = Marshal.GetActiveObject("Excel.Application") as Excel.Application;
                }
                catch
                {
                    // Si aucune instance d'Excel n'est active, demande l'ouverture du fichier
                    xlApp = new Excel.Application();
                    xlApp._FindFile();
                }
                finally
                {
                    xlApp.Visible = true;
     
                    try
                    {
                        // Lance une macro
                        xlApp.Run("MacroLanceeParDotnet", this.txtArg1.Text.ToString(), this.txtArg2.Text.ToString(), M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M);
                    }
                    catch (Exception ex1)
                    {
                        throw new Exception("Erreur : " + ex1.Message.ToString());
                    }
                    finally
                    {
                        //xlClasseur.Save(); // Enregistre les modifs des cellules                
                        //xlApp.Quit(); // On met fin au pilotage
                    }
                }
            }        
            catch (Exception ex)
            {
                throw new Exception("Erreur : " + ex.Message.ToString());
            }
        }
    }

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

Discussions similaires

  1. VBA sous excel - Macro - Création de feuilles à partir d'une liste
    Par Sylione dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2007, 09h42
  2. [Excel] Récupération d'un filtre automatique dans une cellule
    Par billy123 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/03/2007, 15h32

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