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

VB.NET Discussion :

problème à l'ouverture d'Excel (impossible d'effectuer un cast)


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut problème à l'ouverture d'Excel (impossible d'effectuer un cast)
    Bonjour

    J'ai un énorme problème pour ouvrir Excel, et je galère depuis pas mal de temps maintenant. Je dois générer un tableau Excel contenant les résultats d'une requête SQL mais je n'arrive pas à ouvrir le fichier Excel. Ca fait des heures que je galère et en plus, je suis chez un client ... J'ai déjà développé mon application sur mon lieu de travail et ça marchait nickel (base de données en local sous XP Pro) et chez le client sur le poste client, ça plante (Windows 7 avec bdd sur serveur). Le fichier Excel doit pouvoir être généré en local avec des données qui figurent donc sur le serveur.

    Voici une partie de mon code

    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
    Imports System.Windows.Forms
    Imports System.IO
    Imports Microsoft.Office.Interop.Excel
     
    Module mEcheanciers
     
        Public Sub GenererEcheancier(ByVal Tiers As String)
     
            Dim AppExcel As Microsoft.Office.Interop.Excel.Application 'Application Excel'
            Dim WkBook As Microsoft.Office.Interop.Excel.Workbook 'Classeur Excel'
            Dim WkSheet As Microsoft.Office.Interop.Excel.Worksheet 'Feuille de travail Excel'
     
            ...
     
    Dim StSql As String = "SELECT DateE, RefDoc, E.Code,E.Compte, DateP, E.NumEcr, Libelle, MontantDev, MontantRglDev, MontantInteret, ProvApp, ProvFic, NumEch, TypeTiers, Ecr.Code FROM Echeance E, EcrAna Ecr WHERE E.NumEcr = Ecr.NumEcr AND E.TypeTiers = 'C' ORDER BY DateE,RefDoc"
     
            ...
     
            ChaineConnexion = "File Name=finance.udl"
            SaveFileDialog.InitialDirectory = System.IO.Directory.GetCurrentDirectory
     
            'Initialisation des variables'
            iColonnes = 1
            iLignes = 1
            Connect.ConnectionString = ChaineConnexion
     
            Try
                'Ouverture de la connexion à la base de données'
                Connect.Open()
     
                'Ouverture du recordset'
                rst.Open(StSql, Connect)
     
                'Ouverture du fichier Excel vierge'
                AppExcel = New Microsoft.Office.Interop.Excel.Application
                AppExcel.Visible = False
                WkBook = AppExcel.Workbooks.Add()
                WkSheet = WkBook.ActiveSheet
     
                ...
            Catch
             ....
    Il plante à cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AppExcel.Visible = False
    Et m'affiche le message suivant :
    Impossible d'effectuer un cast d'un objet COM de type 'Microsoft.Office.Interop.Excel.ApplicationClass' en type d'interface 'Microsoft.Office.Interop.Excel._Application'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{000208D5-0000-0000-C000-000000000046}' a échoué en raison de l'erreur suivante : Erreur lors du chargement de la bibliothèque/DLL du type. (Exception de HRESULT : 0x80029C4A (TYPE_E_CANTLOADLIBRARY)).
    J'imagine qu'il s'agit d'un problème concernant la librairie Microsoft.Office.interop.excel.dll mais je galère quand même. Je précise que j'ai rajouté les références suivantes à mon projet : Microsoft Excel 11.0 Object Library, Microsoft ActiveX Data Library 6.0, Microsoft.VisualStudio.DebuggerVisualizers, System.Windows.Forms, et que mon environnement de développement est Visual Basic 2008 Express Edition.

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    Vu que tu es dans la partie ASP.Net, j'en déduis que le traitement est lancé depuis un serveur web (mal), est-ce que ton client et toi avez bien la même version d'Excel installée ?

    Sinon, regarde si les PIA d'Excel sont installées sur le serveur, et que le compte d'utilisateur que tu utilises à les droits de lancer Excel (et qu'il n'y a pas déjà un Axcel de lancé)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Tout d'abord merci pour ta réponse. Le traitement n'est pas lancé depuis un serveur web, mais via un simple "exécuter" de mon projet sur le poste client. Sur mon poste de travail, dans ma boîte, j'ai un Office 2003 sous XP Pro alors qu'eux sont équipés d'Office 2007 (j'ai installé aussi Office 2003 sur le PC client, ce qui fait donc deux versions d'Office d'installées sur le même PC) sous Windows 7. Mais après, je ne sais pas quelle version d'Office se lance par défaut quand j'exécute mon projet. Je sais par contre qu'ils n'ont pas d'Office sur le serveur. Du coup, je doute fort que les pia excel soient installées sur leur serveur. Je ne pense pas qu'il y en ait besoin, si ?

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par merlubreizh Voir le message
    Le traitement n'est pas lancé depuis un serveur web, mais via un simple "exécuter" de mon projet sur le poste client.
    Ton projet est bien un projet en ASP.NET ? Dans ce cas, même si tu le lance depuis ta machnie, tu utilises un serveur, par contre, tu dois bien le déploiyer sur IIS chez ton client. Inversement, si ton appli est une appli winform, il y'a un petit souci de forum

    Citation Envoyé par merlubreizh Voir le message
    Je sais par contre qu'ils n'ont pas d'Office sur le serveur. Du coup, je doute fort que les pia excel soient installées sur leur serveur. Je ne pense pas qu'il y en ait besoin, si ?
    Il faut absolument qu'Excel soit installé sur le poste qui fait tourner l'application, sur le serveur si c'est une appli web, sur le poste de ton client si c'est une appli winform.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Je te remercie de t'intéresser à mon problème J'ai tellement galéré aujourd'hui que toute aide est vraiment la bienvenue ! En fait, c'est une application qui se lance en mode console via un fichier exécutable. Ca marchait très bien dans mon entreprise, car j'avais tout en local. Et comme je suis un débutant, il se peut que je fasse fausse route en n'utilisant pas de serveur IIS. Donc il y a peut-être un petit souci de forum et je m'en excuse si c'est le cas ... Non en fait c'est même sûr puisque c'est du VB. Excel 2007 et 2003 sont installés sur le poste de notre client, mais aucun sur le serveur. Il suffirait donc que j'installe Excel et les PIA sur le poste serveur pour faire tourner mon application ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Pour être plus précis, c'est un projet que j'ai développé sous Visual Basic 2008 Express Edition, et au moment de le créer, j'ai sélectionné "Application console" après avoir cliqué sur "Nouveau projet". Je dois donc installer l'application sur deux postes chez le client. Celle-ci va interroger des données qui sont stockées sur le serveur et générer un fichier Excel qui doit s'afficher et pouvoir être enregistré sur les deux postes clients. Selon vous, il serait donc obligatoire qu'Excel et les PIA Excel soient installées sur le serveur ? Merci pour vos réponses

  7. #7
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    Selon vous, il serait donc obligatoire qu'Excel et les PIA Excel soient installées sur le serveur ?
    non, en fait, je me suis fait enduire d'erreur à cause du forum dans lequel tu as posté

    Par contre, sur le client, il faut bien entendu qu'Excel soit installé, ce qui est le cas chez ton client.

    Essaye de réparer Office 2003 chez ton client, cela peut régler le problème.

    Tu peux aussi jeter un oeil sur cet article, qui peut peut-être t'aider

    http://devcity.net/Articles/163/1/article.aspx

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Bonjour

    Je viens de regarder cet article, et j'ai un problème avec TlbImp : unable to locate input type library : EXCEL.EXE en ayant saisi le code suivant

    "%prog% EXCEL.EXE /out=My.Excel11.Interop.dll"

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Ma dll a bien été créée. Je ne m'étais pas placé dans le répertoire d'Excel J'espère maintenant, après avoir rajouté la nouvelle référence, que ça ira mieux chez le client !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Et donc si je comprends bien, après je serai obligé de modifier mon code comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim AppExcel As My.Excel11.Interop.Application 'Application Excel'
            Dim WkBook As My.Excel11.Interop.Workbook 'Classeur Excel'
            Dim WkSheet As My.Excel11.Interop.Worksheet 'Feuille de travail Excel'
    et de copier la dll dans le répertoire /bin de mon projet ?

    Et qu'est-ce donc que le "aka CopyLocal" ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Bon finalement là ça s'est bien passé. Par contre, je rencontre un autre problème complètement différent. J'arrive à générer l'exécutable en publiant mon projet. Dans un logiciel complètement extérieur, j'ai créé un menu qui pointe sur cet exécutable. Lorsque je lance le logiciel et que je clique sur le menu, j'obtiens une erreur CLR20R3 de ce type

    Description :
    Stopped working

    Signature du problème :
    Nom d’événement de problème: CLR20r3
    Signature du problème 01: echeanciers.exe
    Signature du problème 02: 1.0.0.0
    Signature du problème 03: 4df8bacc
    Signature du problème 04: echeanciers.exe
    Signature du problème 05: 1.0.0.0
    Signature du problème 06:
    Signature du problème 07:
    Signature du problème 08:
    Signature du problème 09:
    Version du système:
    Identificateur de paramètres régionaux: 1036

    Lire notre déclaration de confidentialité :
    http://go.microsoft.com/fwlink/?linkid=5…
    Je ne me souviens plus des détails à partir de la signature 06 (je suis actuellement sur le poste de ma boîte). J'ai d'abord pensé à un problème de framework.net puisqu'il n'était pas installé, mais ça n'a pas résolu le problème. Ce dont je suis quasi-certain, c'est qu'il s'agit d'un problème de configuration matérielle, puisque mon exécutable se lance correctement lorsque je clique dessus à partir de l'explorateur windows.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Bon finalement, je me suis orienté vers une autre solution que l'application en VB. Une simple requête Access qui implémente un fichier Excel. Merci à ceux qui ont pris la peine de lire mes messages

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

Discussions similaires

  1. Problème d'ouverture d'Excel 2007
    Par neotruck dans le forum Excel
    Réponses: 0
    Dernier message: 27/02/2013, 16h07
  2. [XL-2010] probléme d'ouverture fichier excel
    Par Legirondin33 dans le forum Excel
    Réponses: 4
    Dernier message: 19/09/2012, 21h48
  3. Ouverture d'Excel impossible : erreur : 80070005
    Par micher dans le forum ASP.NET
    Réponses: 8
    Dernier message: 30/11/2010, 17h24
  4. Problème d'ouverture fichier excel
    Par Thump13 dans le forum Documents
    Réponses: 0
    Dernier message: 05/09/2008, 10h27
  5. problème à l'ouverture d'excel
    Par Destiny dans le forum Excel
    Réponses: 3
    Dernier message: 25/10/2006, 07h58

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