[vb net] ouvrir fichier excel
Fermé
balabonov
Messages postés
11
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
29 août 2006
-
4 juil. 2006 à 09:14
Steve - 19 mars 2012 à 16:08
Steve - 19 mars 2012 à 16:08
A voir également:
- [vb net] ouvrir fichier excel
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
- Fichier rar - Guide
- Ouvrir un fichier .dat - Guide
12 réponses
Malinots
Messages postés
177
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
26 février 2008
24
22 juin 2007 à 10:44
22 juin 2007 à 10:44
moi j'ai fai sa et sa marche pour ouvrir une nouvelle page excel:
variables:
Dim excel As New Excel.Application
Dim workbook As Excel.Workbook
Dim worksheet As Excel.Worksheet
Dim r As Excel.Range
Dim firstcell As Excel.Range
Dim lastcell As Excel.Range
Dim rngg As String(,)
penser a ouvrir les librarie
mon prog et comment on ecri dedans:
Private Sub excell()
excel.Visible = True 'la fenêtre excel est visible
workbook = excel.Workbooks.Add(1) 'on ouvre un classeur dans excel
worksheet = workbook.Worksheets(1) 'on ouvre une feuille dans le classeur excel
WriteToExcel(worksheet, 1, 1, "Acquisition temps réel") 'on écrit "acquisition temps réel" à l'intersection de la ligne 1 et la colonne 1
WriteToExcel(worksheet, 2, 1, "Visualiser graphique appuyer sur ctrl+W")
Dim rng As String(,)
ReDim rng(5, 5)
rng(0, 0) = "Date et heure"
'on choisit l'intersection de la ligne 0 et de la colonne 0 pour écrire "date et heure"
rng(0, 3) = "Puissance kW"
'on choisit l'intersection de la ligne 0 et de la colonne 3 pour écrire "puissance W"
rng(0, 4) = "Tension V"
'on choisit l'intersection de la ligne 0 et de la colonne 4 pour écrire "tension V"
rng(0, 5) = "Courant A"
'on choisit l'intersection de la ligne 0 et de la colonne 5 pour écrire "courant A"
WriteToExcel(worksheet, 3, 1, rng)
'on écrit dans la feuille les expressions vu au-dessus en initialisant le curseur à la ligne 3 et la colonne 1
End Sub
si ya un probleme dite le moi
variables:
Dim excel As New Excel.Application
Dim workbook As Excel.Workbook
Dim worksheet As Excel.Worksheet
Dim r As Excel.Range
Dim firstcell As Excel.Range
Dim lastcell As Excel.Range
Dim rngg As String(,)
penser a ouvrir les librarie
mon prog et comment on ecri dedans:
Private Sub excell()
excel.Visible = True 'la fenêtre excel est visible
workbook = excel.Workbooks.Add(1) 'on ouvre un classeur dans excel
worksheet = workbook.Worksheets(1) 'on ouvre une feuille dans le classeur excel
WriteToExcel(worksheet, 1, 1, "Acquisition temps réel") 'on écrit "acquisition temps réel" à l'intersection de la ligne 1 et la colonne 1
WriteToExcel(worksheet, 2, 1, "Visualiser graphique appuyer sur ctrl+W")
Dim rng As String(,)
ReDim rng(5, 5)
rng(0, 0) = "Date et heure"
'on choisit l'intersection de la ligne 0 et de la colonne 0 pour écrire "date et heure"
rng(0, 3) = "Puissance kW"
'on choisit l'intersection de la ligne 0 et de la colonne 3 pour écrire "puissance W"
rng(0, 4) = "Tension V"
'on choisit l'intersection de la ligne 0 et de la colonne 4 pour écrire "tension V"
rng(0, 5) = "Courant A"
'on choisit l'intersection de la ligne 0 et de la colonne 5 pour écrire "courant A"
WriteToExcel(worksheet, 3, 1, rng)
'on écrit dans la feuille les expressions vu au-dessus en initialisant le curseur à la ligne 3 et la colonne 1
End Sub
si ya un probleme dite le moi
Utilisateur anonyme
7 déc. 2006 à 22:25
7 déc. 2006 à 22:25
Bonjour,
Je n'ai pas encore fait de vb net, mais mon intuition me dit que :
xlsapp = New Excel.Application
devrait être :
set xlsapp = New Excel.Application
Lupin
Je n'ai pas encore fait de vb net, mais mon intuition me dit que :
xlsapp = New Excel.Application
devrait être :
set xlsapp = New Excel.Application
Lupin
il ya une erreur tu as inscrit un point après excel: c'ets pour cette raison qu'il n'identifie pas la classe: Imports Microsoft.Office.Interop.Excel.===>Imports Microsoft.Office.Interop.Excel
Bonjour,
Pour travailler de manière correcte avec Excel, il faut changer la langue en Anlgais US avant de créer l'objet et de tarvailler avec lui. Sinon vous risquez des problèmes divers avec des messages d'erreurs ne reflétant pas le vrai problème...
ligne à ajouter.
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
Pour travailler de manière correcte avec Excel, il faut changer la langue en Anlgais US avant de créer l'objet et de tarvailler avec lui. Sinon vous risquez des problèmes divers avec des messages d'erreurs ne reflétant pas le vrai problème...
ligne à ajouter.
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
euh...j'ai le même problème et la même configuration(office 2003 VS 2005). As-tu trouvé la réponse à...notre problème?
si on a deux fichiers excel et je veux de prendre les informations de premier fichier et le mettre dans la deuxieme comment ?
merci
merci
Salut tout le monde ! j'aimerais savoir comment ouvrir un fichier excel que j'ai déja créer a partir de visual studio 2005 a l'aide d'un bouton "imprimer" et (si possible) comment remplir les champs de ce méme fichier excel a partir des textbox ou d'un datagrid. Merci de bien vouloir me répondre ^_^.
N.B:
-J'utilise microsoft office 2003.
-J'ai importé "imports microsoft.office.interop.excel".
-Je suis débutant en matiére de programmation ... please help me :)
N.B:
-J'utilise microsoft office 2003.
-J'ai importé "imports microsoft.office.interop.excel".
-Je suis débutant en matiére de programmation ... please help me :)
Kaname63
Messages postés
6
Date d'inscription
mardi 13 septembre 2011
Statut
Membre
Dernière intervention
20 octobre 2011
2
Modifié par Kaname63 le 20/10/2011 à 09:35
Modifié par Kaname63 le 20/10/2011 à 09:35
Une petite astuce ; Comme VBA, le langage des macros dans toutes les versions d'Excel est très similaire à VB.net (2005, 2008, 2010), les bases de codage pour piloter Excel sont à votre portée.
Lancer l'enregistrement d'une macro sur Excel et exécuter ce que vous voulez que l'application fasse plus tard (par exemple insérer une valeur dans une cellule)
Stoppez l'enregistrement de la macro puis allez voir le code créé. Vous trouverez des lignes de code très proches de votre langage VB.net. Sauf qu'Excel aura tout enregistrer... Les mouvements dans les fenêtres, les mouvements de la roulette pour se déplacer rapidement dans le classeur...
Après quelques modifications pour épurer le code, vous pouvez presque le copier coller directement sur votre application...
Il y aura quelques erreurs parce que thisworkbook, activesheet, activecell, activechart ne sont pas des classes de vb.net, mais des composants de la DLL Excel. Ainsi si vous avez a un endroit :
dim xlapp as Excel.application
dim xlbook as Excel.workbook
Selon les lignes vous devrez rajouter dans les lignes xlapp. ou xlbook. avant ou à la place de la liste :
thisworkbook => xlapp.activeworkbook
activesheet => xlapp.activesheet
activecell => xlbook.activecell ou xlapp.activecell
activechart => xlbook.activechart ou xlapp.activechart
etc...
Après à partir de ses petits trucs que je viens de vous donner, vous arriverez à aller lire des valeur, écrire des valeurs, changer le titres de graphiques, faire en sorte que la mise en page soit similaire sur plusieurs feuilles,...
Fin bref, beaucoup de choses.
Même à écrire directement des formules à rallonge si vous êtes à l'aise avec VB et Excel. (J'ai personnellement réussi à coder la création de 25 feuilles en liens avec d'autres excel, à calculer à l'aide de RECHERCHEV et de NB.SI imbriqués et de sommes, à copier les valeurs dans une autre feuille avant de supprimer les 25 feuilles et les calculs intermédiaires.)
Sachez aussi que si vos applications (codées en vb.net) devront agir avec des versions d'Office différentes, il vaut mieux faire en sorte que la DLL ajoutée au projet VB.net soit celle de la plus ancienne version d'Excel. (9.0 pour 2000, 11.0 pour 2003, 12.0 pour 2007) Une application avec la version 11.0 de la DLL Excel, ne pourra pas coder de protection compatible avec Excel 2000, donc à l'ouverture, L'application ne pourra même pas ouvrir le classeur.
Redahs : Ce que tu demande est réalisable (partie datagrid vers excel) mais le code derrière est conséquent ; j'ai du le faire et je peux t'affirmer que ce n'est pas en quelques lignes que c'est fait . Il faut ouvrir l'Excel de destination, insérer les titres et les valeurs, cellule par cellule... Pour faire simple Deux boucles Une boucle For pour le titre et deux imbriquées autre boucles For imbriquées pour le remplissage des valeurs. Plus tu as de valeurs à remplir, plus ce sera long...
Houssam-1 : Par codage, c'est réalisable... De plusieurs façon, en faisant le lien entre les deux via Excel, ou en ne copiant que les valeurs entre deux feuilles de deux classeurs... Après dans les deux cas, mon astuce si dessus va te permettre de récupérer la base qui te servira pour ton code. A toi de voir, comment ce que tu veux faire exactement et comment tu veux le faire...
Dans beaucoup de cas, vous aurez deux possibilités de lancer ce que vous voulez pour Excel ;
- en utilisant des macros (attentions aux sécurités) et en pilotant que de loin le déroulement de votre code.
- en pilotant vraiment tout depuis VB.NET
Le hic c'est que parfois le pilotage depuis VB.NET n'est pas possible...
Windows Seven & XP // Office 2000 à 2007 // VB.net 2005 et 2010 // Builder C++
Lancer l'enregistrement d'une macro sur Excel et exécuter ce que vous voulez que l'application fasse plus tard (par exemple insérer une valeur dans une cellule)
Stoppez l'enregistrement de la macro puis allez voir le code créé. Vous trouverez des lignes de code très proches de votre langage VB.net. Sauf qu'Excel aura tout enregistrer... Les mouvements dans les fenêtres, les mouvements de la roulette pour se déplacer rapidement dans le classeur...
Après quelques modifications pour épurer le code, vous pouvez presque le copier coller directement sur votre application...
Il y aura quelques erreurs parce que thisworkbook, activesheet, activecell, activechart ne sont pas des classes de vb.net, mais des composants de la DLL Excel. Ainsi si vous avez a un endroit :
dim xlapp as Excel.application
dim xlbook as Excel.workbook
Selon les lignes vous devrez rajouter dans les lignes xlapp. ou xlbook. avant ou à la place de la liste :
thisworkbook => xlapp.activeworkbook
activesheet => xlapp.activesheet
activecell => xlbook.activecell ou xlapp.activecell
activechart => xlbook.activechart ou xlapp.activechart
etc...
Après à partir de ses petits trucs que je viens de vous donner, vous arriverez à aller lire des valeur, écrire des valeurs, changer le titres de graphiques, faire en sorte que la mise en page soit similaire sur plusieurs feuilles,...
Fin bref, beaucoup de choses.
Même à écrire directement des formules à rallonge si vous êtes à l'aise avec VB et Excel. (J'ai personnellement réussi à coder la création de 25 feuilles en liens avec d'autres excel, à calculer à l'aide de RECHERCHEV et de NB.SI imbriqués et de sommes, à copier les valeurs dans une autre feuille avant de supprimer les 25 feuilles et les calculs intermédiaires.)
Sachez aussi que si vos applications (codées en vb.net) devront agir avec des versions d'Office différentes, il vaut mieux faire en sorte que la DLL ajoutée au projet VB.net soit celle de la plus ancienne version d'Excel. (9.0 pour 2000, 11.0 pour 2003, 12.0 pour 2007) Une application avec la version 11.0 de la DLL Excel, ne pourra pas coder de protection compatible avec Excel 2000, donc à l'ouverture, L'application ne pourra même pas ouvrir le classeur.
Redahs : Ce que tu demande est réalisable (partie datagrid vers excel) mais le code derrière est conséquent ; j'ai du le faire et je peux t'affirmer que ce n'est pas en quelques lignes que c'est fait . Il faut ouvrir l'Excel de destination, insérer les titres et les valeurs, cellule par cellule... Pour faire simple Deux boucles Une boucle For pour le titre et deux imbriquées autre boucles For imbriquées pour le remplissage des valeurs. Plus tu as de valeurs à remplir, plus ce sera long...
Houssam-1 : Par codage, c'est réalisable... De plusieurs façon, en faisant le lien entre les deux via Excel, ou en ne copiant que les valeurs entre deux feuilles de deux classeurs... Après dans les deux cas, mon astuce si dessus va te permettre de récupérer la base qui te servira pour ton code. A toi de voir, comment ce que tu veux faire exactement et comment tu veux le faire...
Dans beaucoup de cas, vous aurez deux possibilités de lancer ce que vous voulez pour Excel ;
- en utilisant des macros (attentions aux sécurités) et en pilotant que de loin le déroulement de votre code.
- en pilotant vraiment tout depuis VB.NET
Le hic c'est que parfois le pilotage depuis VB.NET n'est pas possible...
Windows Seven & XP // Office 2000 à 2007 // VB.net 2005 et 2010 // Builder C++
Pour lire un document excel :
'SOURCE : http://forums.devx.com/showthread.php?threadid=155202 Private Sub getInfo(ByVal strCheminFichier As String) Dim excelApp As New Microsoft.Office.Interop.Excel.Application Dim excelBook As Microsoft.Office.Interop.Excel.Workbook = excelApp.Workbooks.Add(System.Reflection.Missing.Value) Dim excelSheet As Microsoft.Office.Interop.Excel.Worksheet = Nothing Try excelBook = excelApp.Workbooks.Open(strCheminFichier) ' feuille nommée "Général" excelSheet = excelBook.Worksheets("Général") 'On vas chercher dans les cellules du document Dim strTexte as String = excelSheet.Cells(1, 2).Value Catch ex As Exception MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, _ MessageBoxIcon.Error) Finally 'MAKE SURE TO KILL ALL INSTANCES BEFORE QUITING! if you fail to do this The service (excel.exe) will continue to run NAR(excelSheet) excelBook.Close(False) NAR(excelBook) excelApp.Workbooks.Close() NAR(excelApp.Workbooks) excelApp.Quit() NAR(excelApp) 'VERY IMPORTANT GC.Collect() End Try End Sub
5 août 2008 à 10:32
Serait il possible de savoir kel librairie doit-on ouvrir pour creer un fichier excel ?
merci pour les info
21 mars 2010 à 16:12
21 juin 2011 à 00:20