Excel Workbooks.open => membre introuvable

Philidia Messages postés 3 Date d'inscription mercredi 10 juin 2009 Statut Membre Dernière intervention 14 juin 2010 - 14 juin 2010 à 16:10
nero06 Messages postés 2 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 27 juillet 2010 - 27 juil. 2010 à 10:30
Bonjour,

actuellement je travaille sur un trombinoscope qui doit etre capable de récupérer des données classiques d'un fichier excel (nom, prénom, etc...) et les injecter dans une base mysql. un truc plutot classique donc.

cependant je rencontre un problème lors de l'importation du fichier excel dans le datagridview de mon application. Voici le code :
Dim appExcel As Excel.Application 'Application Excel
            Dim wbExcel As Excel.Workbook 'Classeur Excel
            Dim wsExcel As Excel.Worksheet 'Feuille Excel

            'Ouverture de l'application
            appExcel = CreateObject("Excel.Application")
            'Ouverture d'un fichier Excel
            wbExcel = appExcel.Workbooks.open("C:\test.xls")
            'wsExcel correspond à la première feuille du fichier
            wsExcel = wbExcel.Worksheets(1)


le problème semble venir de cette ligne :

            'Ouverture d'un fichier Excel
            wbExcel = appExcel.Workbooks.open("C:\test.xls")


à ce moment la j'ai une exception qui s'affiche dans ma fenetre d'execution :

Une exception de première chance de type 'System.Runtime.InteropServices.COMException' s'est produite dans mscorlib.dll


et l'exception me renvoie "Membre introuvable. (Exception de HRESULT : 0x80020003 (DISP_E_MEMBERNOTFOUND))"

Après recherche sur le net, je n'ai pas trouvé grand chose. J'ai donc procédé à plusieurs vérifications. Au final, je ne comprends pas du tout, la librairie excel est bien dans les références, les déclarations se font sans problèmes, et en regardant des tutoriaux dont j'ai carrément recopié le code, je me retrouve avec la meme erreur.
J'utilise visual studio 2010 ultimate, et office 2007.

Si vous avez une solution, ou une proposition à me faire, je suis preneur, car je ne comprends pas du tout pourquoi Open n'existerait pas comme membre alors que la librairie est présente :x
A voir également:

7 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
14 juin 2010 à 16:22
Bonjour,

Il te manque des set pour instancier tes objets
Set appExcel = CreateObject("Excel.Application")

Ensuite sûrement qu'il te faudra rendre ton appexcel visible en lui mettant la valeur "TRUE"

L'expérience, c'est une connerie par jour, mais jamais la même..
0
Philidia Messages postés 3 Date d'inscription mercredi 10 juin 2009 Statut Membre Dernière intervention 14 juin 2010
14 juin 2010 à 16:29
Coucou et merci de ta réponse.

Le code que j'ai copié contenait effectivement des Set, mais visual studio les a enlevé automatiquement, et en consultant l'aide, j'ai pu constater que ces instructions d'assignation ne sont plus pris en charge.
Je suppose alors que visual studio l'inclut directement, mais si ce n'est pas le cas, alors je suis dans une sacrée impasse :x
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
14 juin 2010 à 16:34
Le code fourni est plutôt valable en vb6..il y a sûrement des adapations à faire en vb.net.

Peut-être préférer l'utilisation de process.start()


L'expérience, c'est une connerie par jour, mais jamais la même..
0
Philidia Messages postés 3 Date d'inscription mercredi 10 juin 2009 Statut Membre Dernière intervention 14 juin 2010
14 juin 2010 à 16:38
Trouvé sur le site de microsoft :

Dans Visual Basic 2005, les propriétés par défaut ne sont pas prises en charge à moins d'accepter des arguments. En raison de cette modification syntaxique, les instructions Let et Set ne sont pas nécessaires pour spécifier ce qu'il faut assigner et elles ne sont pas employées dans les instructions d'assignation. La propriété Text remplace la propriété Caption du contrôle Label


Let est encore un mot réservé dans Visual Basic 2005, bien qu'il ne soit pas utilisé d'un point de vue syntaxique. Cela permet d'éviter la confusion avec ses significations précédentes. Visual Basic 2005 utilise l'instruction Set pour les procédures de propriété qui définissent la valeur d'une propriété.


Donc à priori il le fait bien tout seul, et d'après le tableau des modifications que j'ai pu trouver aussi sur le site de microsoft, ces instructions sont bel et bien devenues inutiles.

Je vais néanmoins essayer ta solution, on va bien voir :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
14 juin 2010 à 18:02
Bonjour,

De mémoire regarde mon tuto sur VBF dans la discussion qui suit pour le pilotage sous VB.NET de l'application Excel.

Amicalement,
Us.
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
15 juin 2010 à 09:10
Bonjour,

Testé sous visual studio 2003:

Dim oXL As New Microsoft.Office.Interop.Excel.Application
Dim oBook As Microsoft.Office.Interop.Excel.Workbook
oXL.Workbooks.Open("tonclasseur.xls")
oXL.Visible = True


L'expérience, c'est une connerie par jour, mais jamais la même..
0
nero06 Messages postés 2 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 27 juillet 2010
27 juil. 2010 à 10:30
Bonjour,
Au début j'avais le même problème mais j'ai utilisé la dernière solution de lolokum et ça marche il suffit d'ajouter Microsoft Excel 12.0 Object Library dans Projet-->Ajouter une référence --> COM -->Microsoft Excel 12.0 Object Library.
Merci LOLOKUM.
0
Rejoignez-nous