Récupérer toutes les instances d'Excel - C#/.NET managed - Programmation
Marsh Posté le 19-11-2010 à 12:37:22
Hello,
Une piste là: http://objectmix.com/dotnet/104447 [...] esses.html
Il semblerait que ce soit avec le nom du document que l'on puisse y accéder
Marsh Posté le 19-11-2010 à 13:42:32
merci pour le lien, après avoir fouillé un peu je peux effectivement récupérer les différentes instances à partir des noms des fichiers :
GetObject(nomCompletDuFichierExcel).Application
le problème que j'ai maintenant, c'est comme retrouver tous les noms de fichiers ouverts. Je pourrais ajouter un bouton pour ouvrir les fichiers Excel depuis mon programme et ainsi récupérer facilement les instances mais ce n'est pas vraiment le but... il suffit qu'un fichier soit ouvert autrement que par mon programme et il est sera pas récupérer.
en plus lorsque j'utilise GetObject, cela ne me ressors pas en erreur si le fichier est fermé mais il m'ouvre le fichier dans l'instance d'excel active et le fichier reste invisible. Donc il faut que je sois absolument sûr que le fichier soit ouvert avant de récupérer l'objet.
est-ce qu'il y a un moyen de récupérer les noms des fichiers ouverts ??
Marsh Posté le 19-11-2010 à 14:12:51
J'ai pas excel d'installé, mais ne sont ils pas marqué dans le titre de la fenetre excel?
Marsh Posté le 19-11-2010 à 14:20:37
seulement le nom du fichier, pour que ca fonctionne avec GetObject il faut le nom complet... donc avec le chemin. J'ai déjà essayé ça
Marsh Posté le 19-11-2010 à 15:16:00
j'ai finalement réussi...
j'ai regardé plus en détail le lien que tu m'as transmis, avec le code qu'il utilisait, il essayait de récupérer directement les instances d'Excel mais en modifiant le GUID pour mettre celui d'un Workbook, on arrive a récupérer les fichiers ouverts.
Je comprend pas trop comment tout ca fonctionne mais tant que ca marche ! voici le code au cas ou d'autres personnes seraient interessés :
Code :
|
Merci encore pour ton aide
Marsh Posté le 19-11-2010 à 19:04:56
Bravo à toi!
Bonnes soirée
Marsh Posté le 19-11-2010 à 09:45:39
Hello,
J'arrive a récupérer une instance d'Excel avec
GetObject(, "Excel.Application" )
par contre impossible de récupérer toutes les objets des instances d'excel s'il y en a plusieurs. J'arrive par contre a récupérer les processus de ces instances avec
Process.GetProcessesByName("Excel" )
J'ai beau cherché sur internet, je ne trouve que des personnes ayant le même problème mais avec aucune solution apportée... Est-ce possible de récupérer l'objet Excel.Application avec son ID ? ou avez-vous une autre idée de comment récupérer ces instances ?
Merci d'avance pour votre aide
Message édité par Arwon le 19-11-2010 à 10:52:04