Index hors limite listview vers excel

Résolu
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 21 sept. 2008 à 08:47
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 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

1 réponse

cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
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
3
Rejoignez-nous