Exporter des infos stockées dans une base Access vers Excel

[Résolu]
Signaler
Messages postés
81
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
15 septembre 2009
-
Messages postés
81
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
15 septembre 2009
-
B'jour!

Je vous explique ma situation. J'ia une base de données Access avec une liste de films et les infos qui les concernent.

Cette base de données, je la l'alimente et la lit depuis mon application VB.

J'ai eu l'idée d'ajouter la fonctionnalité d'export de la liste des films et de leur description dans un fichier excel.

J'arrive à ouvrir un fichier excel et à y mettre les données d'un film: en effet dans mon application quand je clique sur le Titre d'un film j'ai ses infos qui apparaissent dans des textbox, donc il m'est facile d'exporter les données des textbox.text correspondant.
Mais le soucis c'est de pouvoir tout extraire d'un coup (sans avoir à cliquer sur chacun des films :D) et que tout soit mis dans les cellules excels ...

Pouvez vous m'éclairer sur la démarche à adopter? J'imagine une sorte de boucle For avec un "tant que non fin de fichier" mais je ne vois pas comment faire un lien entre mon idée et l'application.

Merci de votre aide :) :)

David

7 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Recherche dans l'aide la fonction CopyFromRecordset que tu peux utiliser avec tes objets Excel

MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
En écrivant ceci
Set oBook = oExcel.Workbooks.Add
tu crées un nouveau classeur et c'est dans celui-ci que tu vas travailler

Essaie plutôt en ouvrant le classeur dans lequel tu veux écrire les données
Set oBook = oExcel .Workbooks.Open("le chemin et nom complet")

Ensuite, tu peux utiliser ton objet oSheet pour activer la bonne feuille si c'est le cas.

MPi
Messages postés
81
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
15 septembre 2009

ok, je vais jeter un oeil où je peux ;) Je ne sais pas de quelle aide tu parles (vb je suppose...) mais je vais regarder :)

Merci beaucoup :)
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Si tu ne trouves pas dans l'aide de VB, regarde dans celle de VBA

MPi
Messages postés
81
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
15 septembre 2009

Erffff je craque!

J'ai suivi tes conseils, j'ai regardé sur le net et j'ai trouvé une aide vraiment bien fournie sur le site de Microsoft.

J'arrive à extraire mes données plus ou moins bien vers une feuille excel. J'essaye de comprendre le code utilisé, j'y arrive relativement bien mais le problème est que la feuille excel qui s'ouvre est une feuille vierge alors que, comme j'ai essayé de l'écrire dans mon code, j'aimerai pouvoir ouvrir la feuille listeFilms.xlt et extraire mes données dedans.

Voici la portion de code concernée, il y a peut-être quelques lignes inutiles... :

Private Sub btnExporterExcel_Click()
     'Create a Recordset from all the records in the Orders table
   Dim sNWind As String
   Dim conn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   sNWind = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=basedonnees.mdb"
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";"
   conn.CursorLocation = adUseClient
   Set rs = conn.Execute("DVD", , adCmdTable) 'adCmdTable je ne sais pas ce que c'est... Sans doute relatif à la base de données "Commandes" qui était donnée en exemple.

   'Create a new workbook in Excel
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   Set oSheet = oBook.Worksheets(1)
 
   repCourant = App.Path + "" 'Indique le répertoire courant dans lequel se trouve l'application

PathDocu = repCourant 'On indique le chemin d'accès au fichier .xlt
ChoixDocu = "listeFilms.xlt" 'On indique le nom du fichier que l'on veut ouvrir.

With oExcel

    '.Documents.Open (PathDocu & ChoixDocu) 'Le document est ouvert grace au chemin donné plus haut
      
    .Visible = True

   'Transfer the data to Excel
   oSheet.Range("A2").CopyFromRecordset rs
  
   'Save the Workbook and Quit Excel
  ' oBook.SaveAs "C:\Book1.xls"
   'oExcel.Quit
  
   'Close the connection
   rs.Close
   conn.Close
End With
End Sub

Merci de votre aide!!!

David
Messages postés
81
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
15 septembre 2009

Super, exactement le type de réponse que j'attendais :)

J'essaierai demain et je te tiens au courant :)

Merci encore!

David
Messages postés
81
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
15 septembre 2009

Excellent ça fonctionne :) Merci 1000 fois :D