Liens Access Exel

caro - 17 juil. 2001 à 13:53
lezardjet Messages postés 77 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 9 mai 2006 - 11 févr. 2004 à 10:42
Bonjour,

Je voudrais automatiquement en lancant une requête sous Access que le résultat de cette requête soit directement transféré sous Excel et transformé en graphes.

Comment puis-je m'y prendre?

Merci d'avance.

Caroline

3 réponses

Bijour.

Y'a bien une méthode qui semble fonctionner, mais je l'ai pas testée en long en large et en travers pour pouvoir affirmer qu'elle est infaillible...

' On récupère le nb d'enregistrements et de champs
' Issus de la requete NomDeRequeteBidon
Set ReqParam = CurrentDb().QueryDefs("NomDeRequeteBidon")
Set RecSet = ReqParam.OpenRecordset()
RecSet.MoveLast
RecSet.MoveFirst
NbLignes = RecSet.RecordCount
NbCols = RecSet.Fields.Count
    
' On ouvre un objet Excel et on y recopie le Recordset
Set ObjExcel = New Excel.Application
With ObjExcel
    Set ObjWorkbook = .Workbooks.Add
    Set ObjSheet = ObjWorkbook.Worksheets(1)
    ObjSheet.Range(.Cells(1, 1), .Cells(NbLignes, NbCols)).CopyFromRecordset RecSet

' On crée le graph (de type ligne) dans une feuille séparée 
    Charts.Add
    With ActiveChart
        .ChartType = xlLine
        .SetSourceData Source:=Sheets("Feuil1").Range("A1:B" & NbLignes), PlotBy:=xlColumns
        .Location Where:=xlLocationAsNewSheet
        .HasLegend = False
    End With
End With

' On sauvegarde le fichier xls ainsi obtenu
Chemin = "C:\Mon\Repertoire\De\Sauvegarde"
Nom = "bidule.xls"
ChDir Chemin
ActiveWorkbook.SaveAs FileName:=Chemin & Nom, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

' On quitte proprement (sinon Excel reste ouvert en tache de fond)
ActiveWorkbook.Close
ObjExcel.Quit


Qq remarques :

1) tu peux spécifier des arguments lorsque tu appelles ta requête : si par exemple dans ta requête tu demandes "Identifiant:" alors il suffit d'écrire dans le source VBA : ReqParam("Identifiant:") = 123456

2) pour créer d'autres types de graphes, seuls qq paramètres changent. Pour savoir quoi écrire, tu peux te servir de l'enregistreur de Macro sous Excel pour regarder ensuite le code VBA généré...

3) si y'a encore d'autres remarques (et que c'est dans mes cordes...) je suis dispo.

Cosak'
0
lezardjet Messages postés 77 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 9 mai 2006
11 févr. 2004 à 10:36
Salut

J'ai essayé de récupéré ce code pour access 2000 mais le debogeur me signale un pb sur : Set ObjExcel = New Excel.Application. il me dit que le type n'est pas défini!!
komment le définir?

merci par avance les VBEEEEEEE ;)
0
lezardjet Messages postés 77 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 9 mai 2006
11 févr. 2004 à 10:42
C bon les gars j'avais oublier de cocher dans Projets/Références => Microsoft Excel 8.0 Object Library

sa roule now ;)
0
Rejoignez-nous