Exportations vers Excel avec filtre sur la requete

Signaler
Messages postés
14
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
24 mai 2006
-
Messages postés
3
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
9 juin 2006
-
Bijour,
j'ai juste besoin d'un  renseignement. voila, j'ai un formulaire et je voudrais exporter les donnees sous format excel je fais donc :

        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel7, "OS par poste et gamme", "Exportation_par_gamme.xls"

où "OS par poste et gamme" est une requete générale, je voudrais appliquer un filtre à l'exportation selon les données choisies sur le formulaire.

Je ne sais pas si j'ai été assez claire, je suis sure que la solution est tres simple en plus...

Merci par avance a ceux qui repondront

1 réponse

Messages postés
3
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
9 juin 2006

Je ne sais pas s'il existe une solution plus simple, mais je ne l'ai pas trouvée !!
Attention, la ligne de titre n'est pas copiée, mais tu peux la générer à partir de la collection "Fields", dans ce cas il faudra copier les données en "A2" au lieu de "A1".

' Procédure associée à l'événement "Sur click" d'un bouton nommé "BtnExportExcel"
Private Sub btnExportExcel_Click()
Dim rsClone As Recordset
Dim oAppExcel As Object
Dim oWorkbook As Object
Dim oSheet As Object
   ' Permet de faire référence aux données du formulaire
   Set rsClone = Me.RecordsetClone
   ' Se place sur le 1er enregistrement, obligatoire sinon la copie ne fonctionne correctement
   ' qu'à la première exportation
   rsClone.MoveFirst
   ' Crée une nouvelle instance de l'application excel
   Set oAppExcel = CreateObject("excel.application")
   ' Crée un classeur. Pour ouvrir un classeur existant : oAppExcel.workbooks.Open "NomFichier.Xls"
   Set oWorkbook = oAppExcel.workbooks.Add
   ' Etablit une référence avec la 1ère feuille du classeur
   Set oSheet = oWorkbook.sheets(1)
   ' Copie dans cette feuille à partir de la cellule "A1" les données du formulaire
   ' s'agissant d'un clône du recordset associé au formulaire, le filtre du formulaire est pris en compte
   oSheet.Range("A1").CopyFromRecordset rsClone
   ' Sauvegarde le fichier excel
   oWorkbook.SaveAs "C:\Temp\MonFichier.Xls"
   ' Rend excel visible. Pour fermer excel : oAppExcel.Application.Quit
   oAppExcel.Application.Visible = True
   ' réinitialise à nothing les variables objets
   Set oWorkbook = Nothing
   Set oSheet = Nothing
   Set oAppExcel = Nothing
End Sub