Visual basic et Excel

Résolu
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016 - 15 déc. 2015 à 22:27
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 17 déc. 2015 à 12:31
Bonjour,
j'essaie d'ouvrir un fichier excel a partir de visual basic en utilisant le code suivant:

Imports System.Net.Mime.MediaTypeNames
Imports System.IO
Imports System.Diagnostics
Imports Microsoft.Office
Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop
Imports WindowsApplication2.Microsoft.Office.Interop.Excel
Imports WindowsApplication2.Microsoft.Office.Interop.Excel.Application
Imports WindowsApplication2.Microsoft.Office.Interop.Excel.Workbook


Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click


Dim appExcel As Microsoft.Office.Interop.Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet


appExcel=CreateObject("WindowsApplication2.Microsoft.Office.Interop.Excel.Application")

wbExcel = appExcel.Workbooks.Open("C:\Utilisateurs\HP\Documents\testons.xlsx")

wsExcel = wbExcel.Worksheets(1)

End Sub


Mais j'obtiens l'erreur suivante: impossible de creer le composant ActiveX.
le compiler precise bien que l'erreur se situe au niveau de :

appExcel=CreateObject("WindowsApplication2.Microsoft.Office.Interop.Excel.Application")

comment reparer cela? pourtant j'ai bien activé microsoft excel library object dans les references (jutilise visual studio)

15 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 déc. 2015 à 14:48
Je ne peux me mettre physiquement à ton clavier et devant ton écran pour voir ce que tu as fait, ce que tu as coché, ce que tu as écrit ...
Bien que je devine (puisqu'il faut deviner) que ce que tu as coché n'est pas ce qu'il fallait cocher...
Discussion à lire (à tout hasard) :
http://vbcity.com/forums/t/165201.aspx

1
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
16 déc. 2015 à 15:13
jai lu votre lien.effectivement moi je fais la chose suivnate:
project-->add references-->COM-->microsoft office object library.

le lien dit qu'il faille aller sur .net et prendre "ms office interop "
puis je savoir comment arriver a ".net"? car lorsque j'ouvre "add references " jai les choix suivants: assemblies;solutions;COM;browse
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
17 déc. 2015 à 12:10
bonjour,
probleme résolu.
Pour ceux que ça interesse,l'ouverture d'un fichier excel a partir de vb.net se fait de la façon suivante:
1. dans notre windowsform(jutilise visualstudio 2012),on va a project-->add referenes-->assemblies-->Microsoft.office.interop.excel
il faut choisir la version 14.0.0.0
2.dans notre windowsform(jutilise visualstudio 2012),on va a project-->add referenes-->COM
il faut cocher:
-microsft development environment 8.0
-microsoft visual basic for application Extensibi....
-microsoft visual studio.NEt project Model (7.1)
-microsoft visual studio.NEt VB and C project...
-OLE automation

3. On va ensuite dans le formulaire windows pour importer Microsoft.office.interop.excel comme ce qui suit:

Imports Excell = Microsoft.Office.Interop.Excel
4. on ecrit ces 3 lignes de codes:

Dim oExcel As New Excell.Application
oExcel.Workbooks.Open("D:/testons.xlsx")
oExcel.Visible = True
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
17 déc. 2015 à 12:11
il faut noter que jai excel 2010 d'ou lutilisation de la version 14.0.0.0
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 15/12/2015 à 22:42
Bonjour,
L'utilisation du moteur de recherche de ce forum (à toujours utiliser avant d'ouvrir une discussion) t'aurait conduit à ce snippet :
http://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net

EDIT : discussion déplacée vers le sous-forum adéquat (VB.Net)
L'ouverture d'un classeur Excel et la création d'objets Excel (ces seules actions) depuis VB.Net est du VB.Net et non du VBA.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
16 déc. 2015 à 09:22
il ne reconnait pas "excel.application"
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
15 déc. 2015 à 23:17
Bonjour;
je souhaite le faire avec du visual basic et non du vb.net; votre lien ne maide en rien
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
15 déc. 2015 à 23:18
ya til moyen de le faire avec du visal basic?
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 15/12/2015 à 23:30
Pardon ?
1) VB.Net EST du Visual Basic
2) les lignes de codes que TU as écrites et montrées SONT du VB.Net !

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
15 déc. 2015 à 23:45
desolée ,
mais meme avec le code vb.net que jai ecrit ;cela ne fonctionne pas.
jai pourtant activé microsoft excel object library mais jai toujours la meme erreur. "impossible de creer le composant activeX"
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
15 déc. 2015 à 23:48
le code que jai mis dans mon premier message est effectivement du vb.net mais il ya lerreur dont j vous parle et q j n comprends pas.
pour ouvrir excel,on utilise "Excel.application". mais chez moi, je n'ai pas cette option qui s'affiche quand je code. je n'ai que excel.worksheet et excel.workbook.
je suppose donc qu'il ne reconnait pas excel.application et je ne comprends pas pourquoi
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 déc. 2015 à 23:58
C'est moi, qui commence à) ne pas te comprendre ...
1) Le code du snippet vers lequel je t'ai dirigé fonctionne.
2) il implique que tu aies respecté cela :
'Aller dans My Project- Références et ajouter dans COM:
'Microsoft Excel Object 12.0 Library

En cochant bien évidemment la référence à TA version de Excel (qui n'est pas forcément Microsoft Excel Object 12.0 Library
Bonne chance
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
16 déc. 2015 à 00:07
desolée pour lembrouillamini de depart car j code sur plusieurs tableaux actuellement. je vais faire un copier coller de votre code,et je vous ferai savoir. merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 déc. 2015 à 00:13
J'ajoute ceci :
Je ne connais pas bien VB.Net, mais si tu veux faire une liaisonj tardive - du "late binding"- (ce que laisse supposer ton utilisation de la fonction CreateObject), ce serait selon moi t'éloigner de la philosophie même de VB.Net. Il est alors probable que, dans un tel cas, il te faudrait travailler hors "Option Strict On") car ce serait faire du VB6 dans VB.Net (peu orthodoxe et non conseillé) !
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
16 déc. 2015 à 09:21
bonjour,
j'ai essayé votre code,cest comme hier soir. j'ai activé ms excel object library 14.0 car jutilise excel 2010.
mais au niveau de la creation "createobject(Excel.application)" ,j'ai toujours la même erreur qui dit: "impossible de creer le composant activeX"
En fait lorsque je tape "excel", je n'ai que 2 opportunités: excel.workbook ou excel.worsheet.
est ce que ma library peut etre incomplete?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 16/12/2015 à 10:30
Et tu comptes continuer longtemps, comme çà ???
1) Où as-tu vu, dans le snippet concerné, qu'était utilisée la fonction CreateObject ?
2) J'ai même pris la peine de t'en toucher un mot, non ? (mon message précédent)
C'est vraiment désolant et je suis vraiment désolé, mais il me parait téméraire de continuer avec toi dans de telles conditions ...
Tu avais TOUT ce qu'il te fallait dans le snippet, TOUT !
Je ne vais pas plus loin dans de telles conditions. Encore désolé.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
16 déc. 2015 à 12:01
j'ai fait un copir coller de ton code,il ne marche pas.il ya plusieurs version douvertures dun fichier excel a partir de vb.net,et elles sont identiques quasiment.le but est de savoir ce que fait chaque ligne pour pouvoir les utiliser
"createobject" ouvre excel en tant qu'application.dans ton code,"excel.application" associé a "dim" crée une instance. donc le probleme ne se situe pas a ce niveau.cest comme je lai dit precedemment, c'est "Excel.application" qu'il ne reconnait pas.
Comment faire?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 déc. 2015 à 12:37
Montre donc le code que tu as exactement écrit (un copier coller de ton code, tel qu'écrit)
Le code du snippet montre comment créer une instance (un objet) Excel.
Une fois l'objet Excel créé, il te suffit de l'utiliser (cet objet) pour ouvrir le classeur que tu veux ! Et cela se fait en pilotant Excel/Vba (méthode Workbooks.Open de VBA appliquée à l'objet créé d'instance Excel)
Si tu ne "captes" toujours pas ces éléments de base, c'est que tu en es au stade de simples copiers/collers sans rien comprendre, ni même commencer à chercher à comprendre. Le développement, c'est tout, sauf cela. Et je suis (et serai toujours) horrifié que l'on "approche" ainsi (sans rien comprendre) le développement.
Bonne chance quand même.

0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
16 déc. 2015 à 14:10
pourtant cest pas bien difficile a comprendre ce que jecris. quand je parle de copier coller,je mattends a ce que vous compreniez en tant que programmeur ce que cela veut dire.
on vous parle de l'objet "application" qui n'est pas disponible dans le library.est ce si compliké a comprendre? bref;laissez tomber,je menoccupe
0
abessoloclaude Messages postés 40 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 11 janvier 2016
16 déc. 2015 à 14:13
excel a 4 objets et 2 d'entre eux sont absents:range et application. il nya que workbook et worksheet qui sont presents.
vous ne comprenez rien a rien ,jessaie pourtant detre claire
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 déc. 2015 à 12:31
Bien.
V eux-tu bien alors libérer cette discussion, en cliquant sur le Tag RESOLU au niveau de ton tout premier message ?
0
Rejoignez-nous