Listview vers Excel, petit probleme... URGENT !!! SVP<<<<<
florian37
Messages postés56Date d'inscriptiondimanche 13 janvier 2002StatutMembreDernière intervention 8 décembre 2008
-
8 sept. 2002 à 16:24
elmir79
Messages postés1Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention17 juin 2004
-
17 juin 2004 à 12:11
Bonjour à tous amis dévelopeur,
voici mon prbleme,
j'ai une listview qui contiens plusieurs lignes (ca peu varier), je la transfert vers ecxel mais elle me copie que la premiere ligne de ma listview,
pouvez vous getter un oeil sur mon code et me dire comment faire pour copier les autres lignes de la listview dans les cases suivante d'excel?
Voici le code:
Private Sub ExportExcel_Click()
Dim i As Integer
Dim j As Integer
'Chemin du fichier a modifier à chaque installation
repertoire = "C:\fichier.xls"
'Ouverture de l'application
Set appexcel = New Excel.Application
'Gestion du fichier et ouverture statique
appexcel.Workbooks.Open repertoire
'Visualisation en fond d'ecran la page excel
appexcel.Visible = True
'On remplit l'entete de la page excel
appexcel.Worksheets(1).Cells(1, 1).Value = "Date et Heure:"
appexcel.Worksheets(1).Cells(1, 2).Value = "Blanc:"
appexcel.Worksheets(1).Cells(1, 3).Value = "Ciment Blanc:"
appexcel.Worksheets(1).Cells(1, 4).Value = "Ciment Gris:"
appexcel.Worksheets(1).Cells(1, 5).Value = "Concasse:"
appexcel.Worksheets(1).Cells(1, 6).Value = "Filler:"
appexcel.Worksheets(1).Cells(1, 7).Value = "Mi Casse:"
appexcel.Worksheets(1).Cells(1, 8).Value = "Roule:"
appexcel.Worksheets(1).Cells(1, 9).Value = "Silice:"
appexcel.Worksheets(1).Cells(1, 10).Value = "Silice humide:"
appexcel.Worksheets(1).Cells(1, 11).Value = "Vasilogrit:"
appexcel.Worksheets(1).Cells(1, i).Font.Bold = True
appexcel.Worksheets(1).Cells(1, i).Font.Size = 8
appexcel.Worksheets(1).Cells(1, i).HorizontalAlignment = xlCenter
appexcel.Worksheets(1).Cells(1, i).VerticalAlignment = xlCenter
Next i
For j = 1 To 11
appexcel.Worksheets(1).Cells(2, j).HorizontalAlignment = xlCenter
Next j
End Sub
Merci de me dire comment fair avec un loop par exemple ou autre car je vois pas trop la,
je suis débutant.
Merci d'avance,
Florian.
A voir également:
Listview vers Excel, petit probleme... URGENT !!! SVP<<<<<
florian37
Messages postés56Date d'inscriptiondimanche 13 janvier 2002StatutMembreDernière intervention 8 décembre 2008 9 sept. 2002 à 11:44
J'ai vu t'a source,
d'ailleur le code que j'ai fait en ai tiré,
mais il n'ecrit pas toute la listview automatiquement dans le fichier excel, il faut rentrer lignes par lignes,
mais vu que je peu en avoir 1 comme 500 lignes, je me vois pas devoir ecrire 500 fois la même chose, il doit bien exister une ligne de commande comme un loop ou autre chose mais je ne trouve pas la logique...
florian37
Messages postés56Date d'inscriptiondimanche 13 janvier 2002StatutMembreDernière intervention 8 décembre 2008 9 sept. 2002 à 11:44
J'ai vu t'a source,
d'ailleur le code que j'ai fait en ai tiré,
mais il n'ecrit pas toute la listview automatiquement dans le fichier excel, il faut rentrer lignes par lignes,
mais vu que je peu en avoir 1 comme 500 lignes, je me vois pas devoir ecrire 500 fois la même chose, il doit bien exister une ligne de commande comme un loop ou autre chose mais je ne trouve pas la logique...
florian37
Messages postés56Date d'inscriptiondimanche 13 janvier 2002StatutMembreDernière intervention 8 décembre 2008 9 sept. 2002 à 11:45
J'ai vu t'a source,
d'ailleur le code que j'ai fait en ai tiré,
mais il n'ecrit pas toute la listview automatiquement dans le fichier excel, il faut rentrer lignes par lignes,
mais vu que je peu en avoir 1 comme 500 lignes, je me vois pas devoir ecrire 500 fois la même chose, il doit bien exister une ligne de commande comme un loop ou autre chose mais je ne trouve pas la logique...
Si vous avez une idée....
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_pimousse75
Messages postés138Date d'inscriptionjeudi 17 janvier 2002StatutMembreDernière intervention22 octobre 2002 9 sept. 2002 à 14:05
il s'agit bien de ce code
Public Sub Export_Excel(My_Listview As Listview, Nbr_Lignes As Integer, Nbr_Colonnes As Integer)
Dim Appli As New Excel.Application
Dim Ligne As String
Dim LigneExcel As Integer
Dim ColExcel As Integer
Dim compt As Integer
Dim comptcol As Integer
Dim fso As New FileSystemObject
'Rendre visible EXCEL
Appli.Visible = True
'Créer un nouveau classeur EXCEL initialisé à la ligne 1
Appli.Workbooks.Add.Activate
DoEvents
LigneExcel = 1
ColExcel = 1
'MsgBox Appli.Workbooks.Count
' Affecter les données de la listbox dans les cellules de la feuille
With ActiveWorkbook.Worksheets("Feuil1")
'Insere le nom des entetes de colonnes
For comptcol = 0 To Nbr_Colonnes - 1
.Cells(LigneExcel, ColExcel) = My_Listview.ColumnHeaders(comptcol + 1)
ColExcel = ColExcel + 1
Next comptcol
ColExcel = 1
LigneExcel = LigneExcel + 1
'Inscrire le contenu d'une listview dans la feuille 1 d'un classeur EXCEL
For compt = 0 To My_Listview.ListItems.Count - 1
'On boucle sur les colonnes
For comptcol = 0 To Nbr_Colonnes - 1
If comptcol = 0 Then
.Cells(LigneExcel, ColExcel) = My_Listview.ListItems.item(LigneExcel - 1)
Else
.Cells(LigneExcel, ColExcel) = My_Listview.ListItems.item(LigneExcel - 1).ListSubItems(comptcol)
End If
ColExcel = ColExcel + 1
Next comptcol
ColExcel = 1
LigneExcel = LigneExcel + 1
Next compt
End With
'Pour mettre l'entête des colonnes en gras
ActiveWorkbook.Worksheets("Feuil1").Range("A1:" & Chr(65 + Nbr_Colonnes - 1) & "1").Font.Bold = True
'Pour ajuster les colonnes
ActiveWorkbook.Worksheets("Feuil1").Range("A:" & Chr(65 + Nbr_Colonnes - 1)).Columns.AutoFit
End Sub
Dans ce cas, il y a bien un boucle sur le nombre de lignes de la listview !!!
cs_pimousse75
Messages postés138Date d'inscriptionjeudi 17 janvier 2002StatutMembreDernière intervention22 octobre 2002 9 sept. 2002 à 14:06
il s'agit bien de ce code
Public Sub Export_Excel(My_Listview As Listview, Nbr_Lignes As Integer, Nbr_Colonnes As Integer)
Dim Appli As New Excel.Application
Dim Ligne As String
Dim LigneExcel As Integer
Dim ColExcel As Integer
Dim compt As Integer
Dim comptcol As Integer
Dim fso As New FileSystemObject
'Rendre visible EXCEL
Appli.Visible = True
'Créer un nouveau classeur EXCEL initialisé à la ligne 1
Appli.Workbooks.Add.Activate
DoEvents
LigneExcel = 1
ColExcel = 1
'MsgBox Appli.Workbooks.Count
' Affecter les données de la listbox dans les cellules de la feuille
With ActiveWorkbook.Worksheets("Feuil1")
'Insere le nom des entetes de colonnes
For comptcol = 0 To Nbr_Colonnes - 1
.Cells(LigneExcel, ColExcel) = My_Listview.ColumnHeaders(comptcol + 1)
ColExcel = ColExcel + 1
Next comptcol
ColExcel = 1
LigneExcel = LigneExcel + 1
'Inscrire le contenu d'une listview dans la feuille 1 d'un classeur EXCEL
For compt = 0 To My_Listview.ListItems.Count - 1
'On boucle sur les colonnes
For comptcol = 0 To Nbr_Colonnes - 1
If comptcol = 0 Then
.Cells(LigneExcel, ColExcel) = My_Listview.ListItems.item(LigneExcel - 1)
Else
.Cells(LigneExcel, ColExcel) = My_Listview.ListItems.item(LigneExcel - 1).ListSubItems(comptcol)
End If
ColExcel = ColExcel + 1
Next comptcol
ColExcel = 1
LigneExcel = LigneExcel + 1
Next compt
End With
'Pour mettre l'entête des colonnes en gras
ActiveWorkbook.Worksheets("Feuil1").Range("A1:" & Chr(65 + Nbr_Colonnes - 1) & "1").Font.Bold = True
'Pour ajuster les colonnes
ActiveWorkbook.Worksheets("Feuil1").Range("A:" & Chr(65 + Nbr_Colonnes - 1)).Columns.AutoFit
End Sub
Dans ce cas, il y a bien un boucle sur le nombre de lignes de la listview !!!
cs_elmir
Messages postés3Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention18 mai 2004 18 mai 2004 à 16:59
bonjour tout le monde
voici la solution de tout les problèmes:
j'ai attend les remarque
-------------------------------------
elmir79@hotmail.com
-------------------------------------
Private Sub ExportExcel_Click()
Dim i As Integer
Dim j As Integer
'Chemin du fichier a modifier à chaque installation
repertoire = "C:\fichier.xls"
'Ouverture de l'application
Set appexcel = New Excel.Application
'Gestion du fichier et ouverture statique
appexcel.Workbooks.Open repertoire
'Visualisation en fond d'ecran la page excel
appexcel.Visible = True
'On remplit l'entete de la page excel
appexcel.Worksheets(1).Cells(1, 1).Value = "Date et Heure:"
appexcel.Worksheets(1).Cells(1, 2).Value = "Blanc:"
'appexcel.Worksheets(1).Cells(1).Width = 8000
Application.WindowState = xlMaximized 'plain ecran
With appexcel.Worksheets(1).Columns(3)
.ColumnWidth = .ColumnWidth * 5
End With
appexcel.Worksheets(1).Cells(2 + j, 1).Value = ListView1.ListItems.Item(j)
For i = 1 To ListView1.ColumnHeaders.Count - 1
appexcel.Worksheets(1).Cells(j + 2, i + 2).Value = ListView1.SelectedItem.ListSubItems(i)
Next i
ListView1.ListItems(j).Selected = true ' pour séléctionne la ligne listeview suivant
Next j
For i = 1 To 6
With appexcel.Worksheets(1).Columns(i)
.Font.Size = 10
End With
appexcel.Worksheets(1).Cells(1, i).Font.Bold = True
appexcel.Worksheets(1).Cells(1, i).Font.Size = 10
appexcel.Worksheets(1).Cells(1, i).HorizontalAlignment = xlCenter
appexcel.Worksheets(1).Cells(1, i).VerticalAlignment = xlCenter
Next i
For j = 1 To 11
appexcel.Worksheets(1).Cells(2, j).HorizontalAlignment = xlCenter
Next j