Accueil > > > [VB .NET] IMPORTER À PARTIR D'EXCEL VERS UNE DATAGRIDVIEW
[VB .NET] IMPORTER À PARTIR D'EXCEL VERS UNE DATAGRIDVIEW
Information sur la source
Description
Suite à une multitude de recherche, je n'ai pu trouver un code (ou une classe) permettant d'importer vers VB.Net à partir d'Excel. J'ai donc fait cette petite classe qui n'est (en rien) de bonne qualité, cependant chez moi ca marche...En esperant que cela puisse servir a quelqu'un. <b>Pour que ca marche : </b> il suffit juste d'une Form ou une MDIParent avec une datagrigview nommé DGV et un classeur excel avec la cellule <b>E5 comprise dans le tableau à importer</b>. Ne vous acharner pas sur moi, c'est ma premiere classe en VB.Net et c'est du bricolage pur est dur... B-
Source
- ' espaces de noms
- Imports System
- Imports System.Data
- Imports Excel
-
- Public Class impXls
-
- ' Déclarations pour classeur Excel
- Private Appli As New Excel.Application
- Private TClasseur As Excel.Workbook
- Private TFeuille As Excel.Worksheet
- Private NameSheet As String ' Le nom de la feuille
- Private cpt As Integer ' variable pour comptage
- Public tabSheet() As String
- Public row() As String
-
- 'dir : directory du fichier
- 'Vis : visibilite du classeur lors de l'import
- Public Sub ouvrirClasseur(ByVal Dir As String, ByVal Vis As Boolean)
- Appli.Visible = Vis ' Application visible
- Appli.DisplayAlerts = False ' Inactivation des alertes
- ' Ouverture du classeur
- Try
- Appli.Workbooks.Open(Dir)
- Catch ex As Exception
- MsgBox("erreur")
- End Try
- ' Initialisation Classeur et Feuille Excel
- TClasseur = CType(Appli.Workbooks(1), Excel.Workbook)
- End Sub
-
- 'Vis : visibilite du classeur lors de l'import
- Public Sub fermerClasseur(ByVal Vis As Boolean)
- ' Fermeture du classeur
- Try
- If Vis = True Then
- Appli.Visible = False
- End If
- Appli.DisplayAlerts = True
- Appli.Quit()
- Catch ex As Exception
- End Try
- End Sub
-
- 'NomSheet : nom de la feuille du classeur ou se trouvent les données à importer
- 'DGV : le nom du DataGridView
- Public Sub rempliDatagrid(ByVal NomSheet As String, ByVal DGV As DataGridView)
-
- TFeuille = CType(TClasseur.Worksheets(NomSheet), Excel.Worksheet)
- TFeuille.Range("E5").CurrentRegion.Select()
- 'on prend connaissance de la taille du tableau a importer
- Dim indGauche = TFeuille.Range("E5").End(XlDirection.xlToLeft).Column.ToString
- Dim indDroite = TFeuille.Range("E5").End(XlDirection.xlToRight).Column.ToString
- Dim indHaut = TFeuille.Range("E5").End(XlDirection.xlUp).Row.ToString
- Dim indBas = TFeuille.Range("E5").End(XlDirection.xlDown).Row.ToString
-
- ' on redientionne le datagridview
- DGV.ColumnCount = indDroite - indGauche
-
- 'On colore les en-têtes, on met les fonts
- With DGV.ColumnHeadersDefaultCellStyle
- .BackColor = Color.Navy
- .ForeColor = Color.White
- End With
-
- Dim row(indDroite - indGauche) As String
- 'Création d'un tableau de strings pour chaque ligne
- For i As Integer = 0 To indBas - indHaut - 1
- For j As Integer = 0 To indDroite - indGauche - 1
- row(j) = TFeuille.Cells(i + indHaut, j + indGauche).value2
- Next
- 'MsgBox(row(0))
- With DGV.Rows
- .Add(row)
- End With
- Next
-
-
- With DGV
- 'Ordre des colonnes
- For i As Integer = 0 To indDroite - indGauche - 1
- .Columns(i).DisplayIndex = i
- .Columns(i).HeaderText = i + 1
- Next
- End With
-
- 'Ajouter les lignes
- DGV.Rows.Add()
-
- 'Enlever la ligne pointée
-
- If DGV.SelectedRows.Count > 0 AndAlso Not DGV.SelectedRows(0).Index = DGV.Rows.Count - 1 Then
- DGV.Rows.RemoveAt(DGV.SelectedRows(0).Index)
- End If
-
- End Sub
-
-
- End Class
' espaces de noms
Imports System
Imports System.Data
Imports Excel
Public Class impXls
' Déclarations pour classeur Excel
Private Appli As New Excel.Application
Private TClasseur As Excel.Workbook
Private TFeuille As Excel.Worksheet
Private NameSheet As String ' Le nom de la feuille
Private cpt As Integer ' variable pour comptage
Public tabSheet() As String
Public row() As String
'dir : directory du fichier
'Vis : visibilite du classeur lors de l'import
Public Sub ouvrirClasseur(ByVal Dir As String, ByVal Vis As Boolean)
Appli.Visible = Vis ' Application visible
Appli.DisplayAlerts = False ' Inactivation des alertes
' Ouverture du classeur
Try
Appli.Workbooks.Open(Dir)
Catch ex As Exception
MsgBox("erreur")
End Try
' Initialisation Classeur et Feuille Excel
TClasseur = CType(Appli.Workbooks(1), Excel.Workbook)
End Sub
'Vis : visibilite du classeur lors de l'import
Public Sub fermerClasseur(ByVal Vis As Boolean)
' Fermeture du classeur
Try
If Vis = True Then
Appli.Visible = False
End If
Appli.DisplayAlerts = True
Appli.Quit()
Catch ex As Exception
End Try
End Sub
'NomSheet : nom de la feuille du classeur ou se trouvent les données à importer
'DGV : le nom du DataGridView
Public Sub rempliDatagrid(ByVal NomSheet As String, ByVal DGV As DataGridView)
TFeuille = CType(TClasseur.Worksheets(NomSheet), Excel.Worksheet)
TFeuille.Range("E5").CurrentRegion.Select()
'on prend connaissance de la taille du tableau a importer
Dim indGauche = TFeuille.Range("E5").End(XlDirection.xlToLeft).Column.ToString
Dim indDroite = TFeuille.Range("E5").End(XlDirection.xlToRight).Column.ToString
Dim indHaut = TFeuille.Range("E5").End(XlDirection.xlUp).Row.ToString
Dim indBas = TFeuille.Range("E5").End(XlDirection.xlDown).Row.ToString
' on redientionne le datagridview
DGV.ColumnCount = indDroite - indGauche
'On colore les en-têtes, on met les fonts
With DGV.ColumnHeadersDefaultCellStyle
.BackColor = Color.Navy
.ForeColor = Color.White
End With
Dim row(indDroite - indGauche) As String
'Création d'un tableau de strings pour chaque ligne
For i As Integer = 0 To indBas - indHaut - 1
For j As Integer = 0 To indDroite - indGauche - 1
row(j) = TFeuille.Cells(i + indHaut, j + indGauche).value2
Next
'MsgBox(row(0))
With DGV.Rows
.Add(row)
End With
Next
With DGV
'Ordre des colonnes
For i As Integer = 0 To indDroite - indGauche - 1
.Columns(i).DisplayIndex = i
.Columns(i).HeaderText = i + 1
Next
End With
'Ajouter les lignes
DGV.Rows.Add()
'Enlever la ligne pointée
If DGV.SelectedRows.Count > 0 AndAlso Not DGV.SelectedRows(0).Index = DGV.Rows.Count - 1 Then
DGV.Rows.RemoveAt(DGV.SelectedRows(0).Index)
End If
End Sub
End Class
Conclusion
Cette classe sera en constante évolution (du moins jusqu'à la fin de mon stage), donc je posterais de nouveau. Je suis ouvert a tout type de reflexion ou meme conseil...
Historique
- 09 mai 2007 18:52:58 :
- Cette classe ne m'a finalement pas servi. On peut utiliser ADO c'est (beaucoup) plus rapide mais c'est encore plus anarchique... Je mettrai la source dès que possible
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Import Bloomberg vers Excel [ par casa2A ]
Bonjour,Je cherche à importer des données Bloomberg vers une feuille Excel et je n'ai aucune idée de la manière pour débuter mes recherches. Si vous a
ouvrir excel ou n'import quelle autre base de donnée [ par Yesai ]
La vie ne vaut pas la peine d'être vecu si on est seul.
Import de feuilles Excel vers Access [ par xalimero ]
Bonjour à tous!!!Je dois programmer une fonction équivalente à lafonction d'import de données externes sous accessen vba access justement.Je ne sais a
Souci d'import de fichier texte dans Excel [ par Lemy ]
Bonjour,Je suis toute nouvelle sur VB et je rencontre quelques difficultés.Dans mon programme, je me connecte à une base de données, j'effectue une re
Import txt dans excel (VBA) [ par jerbi ]
Bonjour,J'aimerais qu'en cliquant sur un bouton, une fenêtre avec le contenu d'un dossier s'ouvre: le dossier contient des fichiers txt.L'utilisateur
import et export de cellule excel [ par feroce88 ]
je voudrais savoir les instrutions qui permette l'import et l'export de cellule excel merci d'avanceFEROCE
Import export excel access [ par voix_off ]
Bonjour à tous !J'écris ici car j'ai un gros souci ! Je suis débutant en VB, j'ai réalisé quelques petites macros, et là
Import d'Excell vers Access [ par chmouette ]
salut tout le monde,Je suis toujours en train de développer mon appli access pour le boulot, et je rencontre (encore!) un problème...Je
Import automatique d'un dll dans un fichier excel [ par boosty85 ]
Bonjour à tous, Je suis en train de développer un dll en VB6, qui possédera des fonctions pour excel. Ce dll, je devrai l'importer automatiquement lo
Pb Import fichier excel [ par devba77 ]
Bonjour, Le code suivant lit sur un répertoire donné tous les fichiers Excel et les importe dans une base access. Il importe plus particulièrement le
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|