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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
sous programme-------------------------------------
Private Sub ExportFeuille(xlSheet As Excel.Worksheets, rec As ADODB.Recordset)
'les entetes
' .Fields(Index).Name renvoie le nom du champ
For J = 0 To rec.Fields.Count - 1
xlSheet.Cells(3, J + 1) = rec.Fields(J).Name
' Nous appliquons des enrichissements de format aux cellules
With xlSheet.Cells(3, J + 1)
.Interior.ColorIndex = 15
.Interior.Pattern = xlSolid
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeBottom).ColorIndex = xlAutomatic
.HorizontalAlignment = xlCenter
End With
Next J
' recopie des données à partir de la ligne 3
I = 4
Do While Not rec.EOF
For J = 0 To rec.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 rec.Fields(J).Type = dbText Then
xlSheet.Cells(I, J + 1) = "'" & rec.Fields(J)
Else
xlSheet.Cells(I, J + 1) = rec.Fields(J)
End If
Next J
I = I + 1
rec.MoveNext
Loop
rec.Close
End Sub
programme principal---------------------------
Function TransfertExcelAutomation1()
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
Dim I As Long, J As Long
Dim t0 As Long, t1 As Long
t0 = Timer
Dim rec1 As Recordset
Dim rec2 As Recordset
Dim rec3 As Recordset
Dim rec4 As Recordset
'Initialisations
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
'Ajouter une feuille de calcul
Set xlSheet = xlBook.Worksheets.Add
xlSheet.Name = "Tutor1"
Set rec1 = CurrentDb.OpenRecordset("SIBANQUE_RCA", dbOpenSnapshot)
' le titre1
' écriture dans la cellule de ligne 1 et de colonne 1
xlSheet.Cells(1, 1) = "Première Structure des données"
'''''''''''''''''
'''''''''''''''''
Set xlSheet = xlBook.Worksheets.Add
xlSheet.Name = "Tutor2"
Set rec2 = CurrentDb.OpenRecordset("SIBANQUE_RLIV", dbOpenSnapshot)
' le titre2
' écriture dans la cellule de ligne 1 et de colonne 1
xlSheet.Cells(1, 1) = "Deuxième Structure des donées"
'''''''''''''''''
Set xlSheet = xlBook.Worksheets.Add
xlSheet.Name = "Tutor3"
Set rec3 = CurrentDb.OpenRecordset("SIBANQUE_RPEP", dbOpenSnapshot)
' le titre3
' écriture dans la cellule de ligne 1 et de colonne 1
xlSheet.Cells(1, 1) = " Troisième Structure des donées"
'''''''''''''''''
Set xlSheet = xlBook.Worksheets.Add
xlSheet.Name = "Tutor4"
Set rec4 = CurrentDb.OpenRecordset("SIBANQUE_RCIF", dbOpenSnapshot)
' le titre4
' écriture dans la cellule de ligne 1 et de colonne 1
xlSheet.Cells(1, 1) = "Quatrième Structure des donées"
'''''''''''''''''
''''''''''''''''''
Call ExportFeuille(Tutor1, rec1)
Call ExportFeuille(Tutor2, rec2)
Call ExportFeuille(Tutor3, rec3)
Call ExportFeuille(Tutor4, rec4)
rec1.Close
rec2.Close
rec3.Close
rec4.Close
' code de fermeture et libération des objets
xlBook.SaveAs "C:\Export.xlsx"
xlApp.Quit
rec1.Close
Set rec = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
t1 = Timer
Debug.Print I & " enregistrements", Format(t1 - t0, "0") & " secondes"
Exit Sub
Test_Err:
If Err.Number <> 91 Then
MsgBox "Une erreur inattendue est apparue dans la fonction Test. L'erreur N° " & Err.Number & " ( " & Err.Description & " )! Contactez l'administrateur.", vbOKOnly + vbCritical, "Erreur inattendue !"
Else
MsgBox "Exportation réussie", vbOKOnly, "Export vers Excel"
End If
End Function |
Partager