Index hors limite listview vers excel [Résolu]

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

Votre réponse

1 réponse

Meilleure réponse
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
21 sept. 2008 à 09:41
3
Merci
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

Merci cs_petchy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

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.