cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
21 sept. 2008 à 08:47
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
21 sept. 2008 à 09:41
bonjour
voila dans une listview je récupère des données de ma base ACCESS,et à l'aide d'un bouton
je veut envoyer ses données vers excel.
voila le code :
Sub exportexcel()
Dim i As Integer, j As Integer
'Demarrer Excel
Set DocExcel = CreateObject("Excel.Application")
'Supprime l'affichage des messages d'erreurs ou de confirmation de suppression, ...
DocExcel.DisplayAlerts = False
'Ajout eun nouveau classeur
DocExcel.Workbooks.Add
'Selectionne la feuille du classeur
DocExcel.Sheets("Feuil2").Select
'On supprime cette feuille
DocExcel.ActiveWindow.SelectedSheets.Delete
'On fait pareil avec la feuille 3
DocExcel.Sheets("Feuil3").Select
DocExcel.ActiveWindow.SelectedSheets.Delete
'On selectionne la feuille 1 (la seule qui reste)
DocExcel.Sheets("Feuil1").Select
'On change le nom de celle ci
Dim R
Set R = CreateObject("WScript.Shell")
'On change la largeur de la colonne
DocExcel.Columns("A:A").ColumnWidth = 30
DocExcel.Columns("B:B").ColumnWidth = 30
DocExcel.Columns("C:C").ColumnWidth = 30
DocExcel.Columns("D:D").ColumnWidth = 30
DocExcel.Columns("E:E").ColumnWidth = 30
DocExcel.Columns("F:F").ColumnWidth = 20
'On Aligne les cellules des colonnes
DocExcel.Columns("A:F").HorizontalAlignment = 3
'On rempli les cases
EcrireExcel Chr(65), 1, "Nom de l'Enfant"
DocExcel.Selection.Font.Bold = True
For i = 65 To 70 'Colonnes
EcrireExcel Chr(i), 1, Frm_Accueil.List.ColumnHeaders(i - 64).Text
DocExcel.Selection.Font.Bold = True If Frm_Accueil.List.ColumnHeaders(i - 64).Width 0 Then DocExcel.Columns(Chr(i) & ":" & Chr(i)).ColumnWidth 0
DocExcel.Cells(1, i - 64).Borders.Value = 1
DocExcel.Cells(1, i - 64).Borders(3).LineStyle = 0
Next i
For j = 1 To Frm_Accueil.List.ListItems.Count 'Lignes
EcrireExcel "A", j + 1, Frm_Accueil.List.ListItems(j).Text '
frm_pause.Progbar.Value = 100 * j / Frm_Accueil.List.ListItems.Count
For i = 65 To 70 'Colonnes
EcrireExcel Chr(i + 1), j + 1, Frm_Accueil.List.ListItems(j).ListSubItems(i - 64).Text
DocExcel.Cells(j + 1, i - 64).Borders.Value = 1
DocExcel.Cells(j + 1, i - 64).Borders(3).LineStyle = 0
DocExcel.Cells(j + 1, i - 64).Borders(4).LineStyle = 0
Next i
'-- Bordure de la derniere colonne
DocExcel.Cells(j + 1, 7).Borders.Value = 1
DocExcel.Cells(j + 1, 7).Borders(3).LineStyle = 0
DocExcel.Cells(j + 1, 7).Borders(4).LineStyle = 0
Next j
'On rend Exel visible
If Not Save Then DocExcel.Visible = True
Set DocExcel = Nothing
End Sub
Private Function EcrireExcel(Colonne As String, Ligne As Integer, Texte As String)
DocExcel.Range(Colonne & Ligne).Select
DocExcel.ActiveCell.FormulaR1C1 = Texte
Range("A2").Select
End Function
mais j'ai une erreur "index hors limite" sur la ligne en rouge
auriez vous une idée
merci
@ plus
petchy
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 21 sept. 2008 à 09:41
Re
j'ai trouver le probleme,en fait quand j'enregistre des nouvelles données dans ma base,il à du mal avec les doublons donc il manque certaine données dans ma base et lors de la récupération des données dans ma listviews il me manque des données et c'est la que sa ne va pas,lorsqu'il y a des blanc.Donc le code est bon.
@ plus