1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
Sub ExportTblAccessInExcel()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim Xlapp As Excel.Application
Dim XlBook As Excel.Workbook
Dim XlSheet As Excel.Worksheet
On Error GoTo errOuvrirExcel
Set Xlapp = GetObject(, "Excel.Application")
On Error GoTo oups:
Xlapp.Visible = True
Set XlBook = Xlapp.Workbooks.Open("c:\SEMAINE.xls")
Set XlSheet = XlBook.Sheets("S0")
' efface les données
XlSheet.Cells.Clear
Set Db = CurrentDb
' Copie dans S0
Set Rs = Db.OpenRecordset("Table1", , dbOpenForwardOnly)
XlSheet.Range("A1").CopyFromRecordset Rs
Set XlSheet = Nothing
' Ajout de la feuille
Set XlSheet = XlBook.Worksheets.Add
XlSheet.Name = "S15"
' remise au début car le 'CopyFromRecordset' ne le fait pas
Rs.MoveFirst
XlSheet.Range("A1").CopyFromRecordset Rs
' Ferme les Var
Rs.Close: Set Rs = Nothing
Db.Close: Set Db = Nothing
Set XlSheet = Nothing
' Sauve le fichier
XlBook.Save
XlBook.Close
Set XlBook = Nothing
Set Xlapp = Nothing
Exit Sub
errOuvrirExcel:
'Err 429 : Un serveur OLE Automation ne peut pas créer d'objet
' -> Excel n'est PAS encore ouvert.
If Err = 429 Then
Set Xlapp = CreateObject("Excel.Application")
Resume Next
End If
oups:
MsgBox Err.Number & " - " & Err.Description
End Sub |
Partager