Insérer des données dans un tableau Excel depuis Access 2007

maylouz Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
benol3 Messages postés 570 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous ,

Svp je voudrais insérer le résultat d'un recordset dans un tableau sur Excel en vba .

j'ai utilisé le code suivant mais cela ne marche pas ( je ne maîtrise pas les tableaux sous Excel , donc je ne sais pas si la syntaxe est bonne)

// Documents : Est le nom du Tableau et aussi le nom de la feuille


Dim objWkb As Excel.Workbook
Dim objSht As Excel.Worksheet
conWKB_NAME = Application.CurrentProject.Path & "\Doc_import.xlsx"



Set objWkb = .Workbooks.Open(conWKB_NAME)
Set objSht = objWkb.Worksheets("Documents")
Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("select id_livrable, version_Livrable from Livrables ", dbOpenSnapshot)

With objSht

rs.MoveFirst
While Not rs.EOF

.ListObjects("Documents").ListRows("Identifiant") = rs.fields("id_livrable")
.ListObjects("Documents").ListRows("version") = rs.fields("version_livrable")

rs.movenext
wend

End With


j'ai un message d'erreur : l'indice n'appartient pas à la sélection sur la première ligne d'insertion : .listObjects("documents").listeRows.........

le tableau Excel dispose bien d'un entête Identifiant et Version.

si Quelqu'un peut m'aider svp, je vous remercie d'avance.







A voir également:

1 réponse

benol3 Messages postés 570 Date d'inscription   Statut Membre Dernière intervention   87
 
Salut,

Voici un bout de code qui devrait fonctionner :

Dim appexcel As Excel.Application
Dim wbexcel As Excel.Workbook
Dim rq As Recordset

'appel du fichier excel
Set appexcel = CreateObject("Excel.Application")
'appexcel.Visible = True
Set wbexcel = appexcel.Workbooks.Open(Application.CurrentProject.Path & "\Doc_import.xlsx")


'appel feuille excel
appexcel.Sheets("Documents").Select
Set rq = CurrentDb.OpenRecordset("select id_livrable, version_Livrable from Livrables ", dbOpenSnapshot)
    
    If rq.RecordCount = 0 Then
        MsgBox "Il n'y a pas de données"
        Exit Sub
    Else
        appexcel.Sheets("Documents").Range("A2").CopyFromRecordset rq
        ' Copie tous les enregistrements de la requete dans le fichier excel
      rq.MoveFirst
    End If

rq.Close: Set rq = Nothing

'Affichage du fichier excel
appexcel.Visible = True      

0