Bonjour,
J'ai trouvé dans le forum un beau programme qui marche parfaitement pour transférer une table vers un fichier excel.
Le souci, c'est que dans ma table les montants sont en texte, et le patron voudrait bien qu'il apparraisse en décimal sous excel.
Quel fonction je pourrais utiliser pour effectuer cette demande ?
ET ou dans ce programme dois je l'insérer ?
Merci
Voici le programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Function TransfertExcelMATABLE() 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 rec As Recordset 'ouvre les enregistrements qui se trouvent dans la table mATABLE Set rec = CurrentDb.OpenRecordset("MATABLE", dbOpenSnapshot) 'Initialisations Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add 'Ajouter une feuille de calcul Set xlSheet = xlBook.Worksheets.Add 'renomme la feuille de calcul xlSheet.Name = "table" ' le titre ' écriture dans la cellule de ligne 1 et de colonne 1 xlSheet.Cells(1, 1) = "Export ma table" ' les entetes ' .Fields(Index).Name renvoie le nom du champ For J = 0 To rec.Fields.Count - 1 xlSheet.Cells(2, J + 1) = rec.Fields(J).Name ' Nous appliquons des enrichissements de format aux cellules With xlSheet.Cells(2, 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 = 3 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 ' code de fermeture et libération des objets xlBook.SaveAs "C:\Emplacement\essai.xls" xlApp.Quit rec.Close Set rec = Nothing Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing t1 = Timer Debug.Print I & " enregistrements", Format(t1 - t0, "0") & " secondes" End Function
Partager