J'ai crée uune macro vba dans access pour le transefrt de données vers excell (modéle cafeine), ensuite dans ce fichier excel j'ai fait un programme pour le traitement des données, j'ai souhaité scinder les 2 pour alléger le programme access.
Par contre lors du transfert de données j'ai essayé de lancer le programme analyse qui se trouve dans excel à partir d'access de la façon suivante :
message d'erreur :" sub ou function non definie"
Code : Sélectionner tout - Visualiser dans une fenêtre à part call analyse
En fait je pensais que je travaillais sous excel lors du tansfert ??
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
72
73
74
75
76
77
78 ublic Function TransfertExcelAutomationessai(ByRef Rst As DAO.Recordset) Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim i As Long, J As Long Dim t0 As Long, t1 As Long t0 = Timer Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("m:\F.D\programmation\Access\graphique rebuts.xls") Set xlSheet = xlBook.Worksheets("Données") ' le titre ' écriture dans la cellule de ligne 1 et de colonne 1 xlSheet.Cells(1, 1) = "Export d'une table Access" ' les entetes ' .Fields(Index).Name renvoie le nom du champ For J = 0 To Rst.Fields.Count - 1 xlSheet.Cells(2, J + 1) = Rst.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 Rst.EOF For J = 0 To Rst.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 Rst.Fields(J).Type = dbText Then xlSheet.Cells(i, J + 1) = "'" & Rst.Fields(J) Else ' If Rst.Fields(J).Type = dbDate Then ' xlSheet.Cells(i, J + 1).NumberFormat = "dd/mm/yyyy" 'Else xlSheet.Cells(i, J + 1) = Rst.Fields(J) 'End If End If Next J i = i + 1 Rst.MoveNext Loop '***************************VOICI LE PROBLEME**** Call analyseresultats '****************************************** ' code de fermeture et libération des objets xlBook.Save xlApp.Quit Rst.Close Set Rst = Nothing Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing t1 = Timer Debug.Print i & " enregistrements", Format(t1 - t0, "0") & " secondes" End Function
Merci pour l'aide
Partager