Index hors limite listview vers excel [Résolu]

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

Votre réponse

1 réponse

cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 21 sept. 2008 à 09:41
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_petchy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.