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'