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 :

Ecrire dans Excel 2003 avec VBnet 2005 : Erreur : Impossible d'effectuer un cast d'un objet COM de type 'Syst


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut Ecrire dans Excel 2003 avec VBnet 2005 : Erreur : Impossible d'effectuer un cast d'un objet COM de type 'Syst
    Bonjour à tous,

    Merci par avance pour votre aide.

    Je travaille sur un projet en VB.Net 2005 et j'aimerai exporter des données dans des feuilles Excel que j'ai préparé. Mais j'obtiens une erreur (au moment même me semble-t-il où il veut ouvrir Excel).

    Configuration: Windows Seven, Excel 2003 et VB.Net 2005
    J'ai bien rajouté la dll d'Excel : Excel 11 Object Librairy

    Ma question donc:
    Quelqu'un saurait-il comment écrire dans Excel 2003 avec VBnet 2005. J'ai cherché sur Internet mais rien ne fonctionne toujours la même erreur.
    Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' 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 : n’a pas pu être trouvé. (Exception de HRESULT : 0x80030002 (STG_E_FILENOTFOUND))."

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Pensez vous que cela puisse venir du système d'exploitation ou de l'office qui aurait été mal installé?

  3. #3
    Membre du Club
    Homme Profil pro
    Chargé de commercialisation
    Inscrit en
    Août 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé de commercialisation
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    pourrais tu montrer ton code ainsi que tes imports ? as tu bien ajouté les références ? je viens de finaliser une partie de mon appli qui justement transfert des datas vers un fichier excel suis chaud bouillant sur le sujet si j'ose dire

    pour ma part dans les références sur l'assemblys j'ai rajouté:
    Microsoft.office.tools (M.O.T)
    M.O.T.common
    M.O.T.common.V.X.X.utilities
    M.O.T.Excel
    M.O.T.Excel.VX.X.Utilities
    M.O.T.VX.X.framework

    et dans la form qui génère mon excel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Imports Microsoft.Office.Interop
    Imports Microsoft.Office.Tools
    Imports Microsoft.Office.Tools.Excel.Controls
    Imports Microsoft.Office.Interop.Excel
    Imports Microsoft.Office.Tools.Excel
    peut être en ai je trop mis ( je prend toutes les remarques) mais chez moi ça passe

    sinon tu as ce truc sorti d'un vieux site oueb poussiéreux ..... la solution peut sans doute taider:http://www.developpez.net/forums/arc...t-1074860.html

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut
    dans les réferences de ton projet
    tu as les réferences net et com
    tu as coché dans les com Excel 11 Object Librairy
    il faut plutot dans les net cocher microsoft.office.interop.excel
    et décocher Excel 11 Object Librairy
    Bonne prog

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Merci Manuly et shayw, j'essaye et je vous dis

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    J'ai bien rajouté la référence Microsoft.Office.Interop.Excel (dll mise dans bin\Debug de mon projet)
    mais aucune différence.

    Voici 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
     
    Imports Microsoft.Office.Interop
     'Déclaration des variables
                Dim appExcel As Excel.Application 'Application Excel
                Dim FichierExcel As Excel.Workbook 'Classeur Excel
                Dim FeuilleExcel As Excel.Worksheet 'Feuille Excel
                Dim i As Integer
                Dim j As Integer
                'Ouverture de l'application
                appExcel = CreateObject("Excel.Application")
     
     
                'Ouverture d'un fichier Excel
     
     
                FichierExcel = appExcel.Workbooks.Open("Chemin fichier", , True)
                'Feuille Excel correspondant à la feuille selectionné
                FeuilleExcel = FichierExcel.Worksheets(1) 'Worksheets permet de determiner la feuille
    Merci pour votre aide

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Manuly, comment tu fais pour rajouter ses références Microsoft.office.tools (M.O.T).
    Je ne les trouve pas.

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    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
    Imports excel = Microsoft.Office.Interop.Excel
    Dim appExcel As New excel.Application 'Application Excel
        Private FichierExcel As excel.Workbook 'Classeur Excel
        Private FeuilleExcel As excel.Worksheet 'Feuille Excel
        Private xlWorkBooks As excel.Workbooks
     
     Private Sub test(ByVal path As String)
            Try
                xlWorkBooks = appExcel.Workbooks
                FichierExcel = xlWorkBooks.Open(path)
                FeuilleExcel = CType(FichierExcel.ActiveSheet, excel.Worksheet)
                With FeuilleExcel
     
                End With
     
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
        End Sub

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    shayw, merci de ton aide mais je viens d'essayé et cela ne fonctionne toujours pas.

    Je regarde du coté de PIA Office, j'ai vu que cela pouvait peut être venir de cela, je vous tiens au courant.

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    J'ai téléchargé OPIA2003 (PIA office 2003) et exécuté mais cela ne fonctionne toujours pas.
    Je ne sais plus quoi faire.

  11. #11
    Membre du Club
    Homme Profil pro
    Chargé de commercialisation
    Inscrit en
    Août 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé de commercialisation
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    Je ne suis pas dans mon environnement de travail pour le moment mais 1 chose qui posait probleme chez moi

    au lieu de mettre dim tavariable as excel.application essaie de mettre dim tavariable as Microsoft.office.interrop.excel.application (un truc comme ça)
    si tu n'as pas les ref tools je crois que c'est normal ( version d'office de mémoire )

    comme dit shayw privilégie l'interrop plutot que l'objet library de excel

    je te copie colle mon code ce soir

    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
     Dim C, N As Integer
            Dim xlapp As New Microsoft.Office.Interop.Excel.Application
            Dim xl As Microsoft.Office.Interop.Excel.Workbook
            Dim Xlws As Microsoft.Office.Interop.Excel.Worksheet
            xl = xlapp.Workbooks.Open("C:\Users\Vacants.xlsx")
            Xlws = xl.Worksheets(1)
            'Dim j As Integer
            xlapp.visible = True
            'xl.Workbooks.Add()
     
     
            N = DataGridView1.ColumnCount
     
            For L As Integer = 0 To DataGridView1.Rows.Count - 1
                For C = 0 To N - 1
     
                    Xlws.Cells(L + 4, C + 1) = DataGridView1.Rows(L).Cells(C).Value
                Next C
            Next L
     
     
            Dim newDate = Now
            TextBox102.Text = newDate
            TextBox102.Text = Replace(TextBox102.Text, "/", "")
            TextBox102.Text = Replace(TextBox102.Text, ":", "")
            TextBox102.Text = Replace(TextBox102.Text, " ", "")
     
            xl.SaveAs("C:\Users\" & TextBox102.Text & ".xlsx")
            'xl.Close()

  12. #12
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Si tu as VB.net 2005 Express, tu ne peux pas utiliser les "Office Tools". Malheureusement, aucune des éditions Express, ne le permet.

  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    bonsoir,

    Tout d'abord clementmarcotte mon VB est : Microsoft Visual Studio 2005 Professional Edition

    Ensuite manuly merci pour code, j'ai refait un peu projet avec juste ton 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
    Imports Microsoft.Office.Interop
    Imports Microsoft.Office.Tools
    Imports Microsoft.Office.Tools.Excel.Controls
    Imports Microsoft.Office.Interop.Excel
    Imports Microsoft.Office.Tools.Excel
     
    Public Class Form1
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim C, N As Integer
            Dim xlapp As New Excel.Application
     
            Dim xl As Excel.Workbook
            Dim Xlws As Excel.Worksheet
            xl = xlapp.Workbooks.Open("Chemin fichier")
            Xlws = xl.Worksheets(1)
            'Dim j As Integer
            xlapp.visible = True
            'xl.Workbooks.Add()
     
     
            'N = DataGridView1.ColumnCount
     
            'For L As Integer = 0 To DataGridView1.Rows.Count - 1
            '    For C = 0 To N - 1
     
            '        Xlws.Cells(L + 4, C + 1) = DataGridView1.Rows(L).Cells(C).Value
            '    Next C
            'Next L
     
     
            'Dim newDate = Now
            'TextBox102.Text = newDate
            'TextBox102.Text = Replace(TextBox102.Text, "/", "")
            'TextBox102.Text = Replace(TextBox102.Text, ":", "")
            'TextBox102.Text = Replace(TextBox102.Text, " ", "")
     
            'xl.SaveAs("C:\Users\" & TextBox102.Text & ".xlsx")
            'xl.Close()
        End Sub
    End Class
    Référence rajoutées :
    Microsoft Office 11.0 Object Library.
    Microsoft Visual Basic for Applications Extensibility 5.3
    Microsoft.Office.Interop.Excel

    Nouvelle erreur:
    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 : n’a pas pu être trouvé. (Exception de HRESULT : 0x80030002 (STG_E_FILENOTFOUND)).

  14. #14
    Membre du Club
    Homme Profil pro
    Chargé de commercialisation
    Inscrit en
    Août 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé de commercialisation
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    je suis têtu mais ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim xlapp As New Microsoft.Office.Interop.Excel.Application
            Dim xl As Microsoft.Office.Interop.Excel.Workbook
            Dim Xlws As Microsoft.Office.Interop.Excel.Worksheet
    evite de mettre il y a parfois des erreurs de builds à cause de ce truc ( ça m'est arrivé)

  15. #15
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Merci Manuly,

    J'ai mis exactement cela mais cela me donne toujours une erreur:

    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 : n’a pas pu être trouvé. (Exception de HRESULT : 0x80030002 (STG_E_FILENOTFOUND)).

    Et j'ai fais un nouveau petit projet rien qu'avec ton code.

  16. #16
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Certains forum disent de réparer mon Office c'est se que j'ai fait mais aucun changement.
    Je n'ai plus aucune idée.

  17. #17
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    l'interop office c'est nul
    Essayez l'Open Xml si c'est possible dans votre projet (moins de mal aux cheveux )

  18. #18
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Malheureusement c'est impossible.
    Mais merci dkmix

  19. #19
    Membre du Club
    Homme Profil pro
    Chargé de commercialisation
    Inscrit en
    Août 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé de commercialisation
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2013
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    je crois que j'ai trouvé. si tu as un problème avec la langue se shèspire ^^ tu me dis je traduirai
    http://social.msdn.microsoft.com/For...ng-office-2003

    hope it will be the good try !!!!!!!!


    EDIT: base de registre surtout !!!!

    sinon j ai encore trouvé ceci:
    http://www.wiki-errors.com/wiki-erro...iki=0x80030002

  20. #20
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut

    après avoir lu tes réponses une chose n'est pas claire
    tu as écrit
    J'ai bien rajouté la référence Microsoft.Office.Interop.Excel (dll mise dans bin\Debug de mon projet)
    mais aucune différence.
    justement chez moi quand j'ajoute une reference la dll n'apparait pas dans
    bin\Debug

    pour cela je ne sais pas si tu as ajouté la réference comme il le faut
    tu peux verifier si dans la liste des réferences utillisé dans ton projet
    PROJET -> proprieté du projet -> onglet réference
    dans la liste qui apparait as tu Microsoft.Office.Interop.Excel ?
    si oui donc c'est bon
    si non clique sur ajouter -> onglet NET
    as tu dans la liste Microsoft.Office.Interop.Excel
    si oui clique ok
    non donc problème
    aussi tu as ajouté Excel 11 Object Librairy qui est une réference de type com
    en net on n'utilise plus ce genre de réference
    il faudrait plutot la retirer de ton projet
    PROJET -> proprieté du projet -> onglet réference
    dans la liste choisis Excel 11 Object et clique sur le bouton "supprimer" ou
    remove

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. erreur impossible d'effectuer un cast?
    Par gilles_906 dans le forum VB.NET
    Réponses: 6
    Dernier message: 04/04/2011, 22h51
  2. Ecrire dans une CEdit avec deux Couleurs Différentes
    Par yoyothebest dans le forum MFC
    Réponses: 1
    Dernier message: 25/03/2006, 19h09
  3. Ecrire dans un fichier avec PL/SQL (oracle)
    Par Titouf dans le forum PL/SQL
    Réponses: 3
    Dernier message: 02/10/2005, 06h36
  4. [VBS] Ecrire dans les Eventlog avec VBS
    Par Hakkou dans le forum VBScript
    Réponses: 1
    Dernier message: 04/10/2004, 14h50
  5. [VB.NET] Problème avec un OptionButton dans Excel 2003
    Par alfprod dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/09/2004, 13h40

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