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 71 72 73 74 75 76 77
|
Private Sub Commande40_Click()
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
Dim db As Database
Dim qry11 As QueryDef
Dim I As Long, J As Long, K As Long
Dim t0 As Long, t1 As Long
Dim parametre As String
Dim rec11 As DAO.Recordset
t0 = Timer
'Initialisations des variables
Set db = Application.CurrentDb
Set qry11 = db.QueryDefs("qryRapportADV")
parametre = "Nouvelles dates de fin de fabrication"
Set rec11 = qry11.OpenRecordset
'Initialisation
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
'Ajouter une feuille de calcul
Set xlSheet = xlBook.Worksheets.Add
xlSheet.Name = parametre
' le titre
' écriture dans la cellule de ligne 1 et de colonne 1
xlSheet.Cells(1, 1) = "Export de votre état: Nouvelle date de fin fabrication"
' les entetes
' .Fields(Index).Name renvoie le nom du champ
For J = 0 To rec11.Fields.Count - 1
xlSheet.Cells(2, J + 1) = rec11.Fields(J).Name
' Nous appliquons des enrichissements de format aux cellules
With xlSheet.Cells(2, J + 1)
.Interior.ColorIndex = 15
.Interior.Pattern = xlSolid
End With
Next J
' recopie des données à partir de la ligne 3
I = 3
Do While Not rec11.EOF
For J = 0 To rec11.Fields.Count - 1
' .Fields(Index).Type renvoie le type du champ
' si c'est un Texte (dbText) nous insérons "'" pour
' qu'il soit reconnu par Excel comme du Texte
If rec11.Fields(J).Type = dbText Then
xlSheet.Cells(I, J + 1) = "'" & rec11.Fields(J)
Else
xlSheet.Cells(I, J + 1) = rec11.Fields(J)
End If
Next J
I = I + 1
rec11.MoveNext
Loop
' code de fermeture et libération des objets
xlBook.SaveAs "D:\Temp\Nouvelles dates de fin de fabrication.xls"
xlApp.Quit
rec11.Close
Set rec11 = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
t1 = Timer
Debug.Print I & " enregistrements", Format(t1 - t0, "0") & " secondes"
End Sub |
Partager