Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme [ Base de données / ADO.NET ] (wacssine)

vendredi 18 juillet 2008 à 11:58:20 | Probleme

wacssine

Bonjour,

   Est ce qu'on peux importer un DataGrid sous Excel ??
  Le probleme ce que je dois faire une recherche sur des données et transmettre ces données en format Excel

vendredi 18 juillet 2008 à 12:44:24 | Re : Probleme

gillardg

' * Le code permet d'exporter le contenu d'une datagrdiview vers un fichier excel

'**

'UTILISATION

' Dim ex As New ExportXls.now

' ex.Export(datagv)

' ex = Nothing

'FIN UTILISATION



Imports

Microsoft.VisualBasic

Imports

System

Imports

System.Collections.Generic

Imports

System.ComponentModel

Imports

System.Data

Imports

System.Text

Imports

System.Windows.Forms

Imports

System.Reflection

Public

Class now

Private oXL As Microsoft.Office.Interop.Excel.Application

Private oWB As Microsoft.Office.Interop.Excel._Workbook

Private oSheet As Microsoft.Office.Interop.Excel._Worksheet

Private oRng As Microsoft.Office.Interop.Excel.Range

Private M As Object = System.Reflection.Missing.Value

#

Region "Enregistrer le fichier Excel sous"

Public Sub SaveAs( ByVal sNameFichier As String )

Try

oWB.SaveAs(sNameFichier, M, M, M, M, M, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, M, M, M, M, M)

Catch e As Exception

MessageBox.Show(e.Message)

End Try

End Sub

#

End Region

Public Function Export( ByRef dtgv As DataGridView)

Dim z As Int32 = 1

Dim f As New Form

f.Width = 200

f.Height = 50

f.FormBorderStyle = FormBorderStyle.None

Dim pgb As New ProgressBar

pgb.Parent = f

pgb.Dock = DockStyle.Fill

pgb.Style = ProgressBarStyle.Marquee

f.Show()

pgb.Value = pgb.Value + z

Dim savefd1 As New SaveFileDialog

With savefd1

.AddExtension =

True

.DefaultExt =

".xlsx"

.CheckPathExists =

True

.DereferenceLinks =

True

.Filter =

"Excell 2007(*.xlsx)|*.xlsx"

.OverwritePrompt =

True

.ShowHelp =

True

.SupportMultiDottedExtensions =

True

.Title =

"Save as Excell 2007 file"

.ValidateNames =

True

End With

Try

'Start Excel and get Application object.

oXL =

New Microsoft.Office.Interop.Excel.Application()

oXL.Visible =

False

pgb.Value = pgb.Value + z

'Get a new workbook.

oWB =

CType (oXL.Workbooks.Add(System.Reflection.Missing.Value), Microsoft.Office.Interop.Excel._Workbook)

oSheet =

CType (oWB.ActiveSheet, Microsoft.Office.Interop.Excel._Worksheet)

pgb.Value = pgb.Value + z

' Copier les noms des colonnes

Dim i As Integer = 0

For Each ch As DataGridViewColumn In dtgv.Columns

oRng = oSheet.Range(Convert.ToChar(65 + i).ToString() &

"1" , Missing.Value)

oSheet.Cells(1, i + 1) = ch.Name.Trim()

oRng.Interior.ColorIndex = Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic

oRng.Font.Bold =

True

oRng.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, Missing.Value)

oRng.EntireColumn.AutoFit()

pgb.Value = pgb.Value + z

i += 1

Next ch

' Copier toutes les cellules du datagridview

' j=2 on commence à la 2eme ligne dans le fichier excel

Dim j As Integer = 2

For Each uneLigne As DataGridViewRow In dtgv.Rows

pgb.Value = pgb.Value + z

i = 1

' si i=1 alors 65-1+1 donne 65<=>A et ainsi on aura la lettre de la colonne puis on juxtapose le numero de la ligne

For Each uneColonne As DataGridViewColumn In dtgv.Columns

oRng = oSheet.Range(Convert.ToChar(65 + i - 1).ToString() & j.ToString(), Missing.Value)

oSheet.Cells(j, i) = uneLigne.Cells(uneColonne.Name).Value.ToString().Trim()

oRng.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, Missing.Value)

oRng.EntireColumn.AutoFit()

i += 1

Application.DoEvents()

Next uneColonne

oSheet.Columns.AutoFit()

j += 1

Application.DoEvents()

Next uneLigne

Catch

End Try

f.Dispose()

If savefd1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

Try

SaveAs(savefd1.FileName)

Catch

MessageBox.Show(

"erreur" )

End Try

End If

oXL.Quit()

Return True

End Function

End

Class

il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres


vendredi 18 juillet 2008 à 13:06:37 | Re : Probleme

wacssine

Est ce que je peux utiliser ce code en vb.net 2005 ??

Merci

vendredi 18 juillet 2008 à 13:13:16 | Re : Probleme

gillardg

ah non désolé c'est du vb2005

il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres


vendredi 18 juillet 2008 à 13:15:46 | Re : Probleme

wacssine

d'accord il n y a pas une solution pour vb.net 2005

Merci.

vendredi 18 juillet 2008 à 13:25:00 | Re : Probleme

gillardg

heu je me suis pas bien fait comprendre
ah non désolé c'est du vb2005


il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres




Cette discussion est classé dans : données, excel, probleme


Répondre à ce message

Sujets en rapport avec ce message

probleme enregistrement de données sur excel [ par thunderpat59199 ] j'arrive pas a faire un enregistrement sur plusieurs cellules je voudrais qu'a chaque donnee envoyé par le port série soit enregistrer à la suite dans probleme format cellule [ par ludo_wob ] bonjour, je ne suis pas un expert en macro excel, pourtant je souhaiterais pouvoir modifier le format des cellules d´un tableau. j´esplique le context probleme modification automatique avec excell [ par icomicar ] Salut je realise une application en vb6.celle ci utilise un fichier excel. et avec excel 2003 j'ai un probleme:les données sous forme de matricule probleme de langue je pense [ par mirmoleboss ] bonjour voila jai un probleme avec mon code, lorsque je lance excel il bloque sur  Donnees = Now()probleme de langue mais je sais pas par quoi remplav Macro VB Sous Excel - envoi par mail de données formulaire [ par tiwan ] Bonjour,Sous Excel, j'ai créé un formulaire userform de saisie client (avec nom prenom n°client etc...) et je veux envoyer ces données par mail (outlo Probleme Objet Excel.Application [ par darkspoilt ] Bonjour mon probleme est simple j'aimerais renvoyer kom valeur mon Objet Excel.Application je renvoie mon objet excel.application Public Function Importation de données ACCESS avec EXCEL [ par durden35 ] Bonsoir à tous,Voici ma question :Je voudrais créer une boîte de dialogue sous EXCEL qui me permette avec du code vb excel de pouvoir importer des don VBA acess probleme de renvoir [ par darkspoilt ] Bonjourj'ai un probleme de renvoie Pour le moment ma fonction renvoie le classeur mais j'aimerais aussi renvoyer l'objet Excel.Application (car si je Extraction Données Excel [ par Morrissey35 ] Bonjour à tous, j'ai écris un petit code qui me sert à extraire des données de plusieurs fichiers excel vers un fichier centralisateur. L'objectif éta Probleme pour enregistrer mon code [ par Morrissey35 ] Bonjour, j'espère que cette fois j'ai choisi le bon thème pour laisser mon message, où je vais encore me faire taper sur les doigts...Etant novice sur


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.