Bonjour,
je sais que ma question peut parraître stupide mais bon.
J'ai créé la sous fonction suivante
Mais je suis incapable de faire son appel, pourtant elle ne semble pas nécessité d'argument. Lors de la compilation j'obtient l'erreur suivante
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 Public Sub ExportTable() ' déclaration des variables Dim tabListe() As String ' tableau où on va stocker la liste des tables Dim xlApp As Excel.Application ' ne pas oublier de cocher la référence Excel Dim xlBook As Excel.Workbook ' le classeur où se trouve la feuille Dim xlSheet As Excel.Worksheet ' la feuille où on va stocker les tables Dim db As DAO.Database ' nous utilisons la bibilothèque DAO Dim rst As DAO.Recordset ' le recordset pour récupérer les données des tables Dim i As Integer ' pour boucler sur les tables Dim j As Integer Set db = CurrentDb ' on rempli le tableau avec 8 tables ReDim tabListe(8) tabListe(0) = "Béton" tabListe(1) = "Intervention_chaussée" tabListe(2) = "Ponceau" tabListe(3) = "ActConn" tabListe(4) = "Bretelle" tabListe(5) = "Gravier" tabListe(6) = "Autres_éléments" tabListe(7) = "Parachèvement_3_ans_total" ' on créé notre classeur Excel Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add ' bouclage sur les tables pour remplir la feuille For i = 0 To UBound(tabListe()) - 1 Set xlSheet = xlBook.Worksheets.Add xlSheet.Name = tabListe(i) ' les entetes ' .Fields(Index).Name renvoie le nom du champ Set rst = CurrentDb.OpenRecordset(tabListe(i), dbOpenSnapshot) For j = 0 To rst.Fields.Count - 1 xlSheet.Cells(1, j + 1) = rst.Fields(j).Name ' Nous appliquons des enrichissements de format aux cellules With xlSheet.Cells(1, 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 Set rst = db.OpenRecordset("SELECT * FROM " & tabListe(i) & ";") xlSheet.Range("A2").CopyFromRecordset rst Set rst = Nothing Next i MsgBox "Fin de traitement - votre fichier Excel a été enregistré dans le dossier rapport" xlBook.SaveAs CurrentProject.Path & "\Rapport\rapport.xls" ' libération des objets 'xlBook.Save xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub
Erreur de compilation: erreur de syntaxe.
J'ai tenté les frome d'appel suivant:
ExportTable()
Sub ExportTable()
Public Sub ExportTable()
VARIABLESTRING = ExportTable()
Je ne sais plus quoi essayé, je sais que ma sub func fonctionne car je suis capable de l'exécuter seul
Un ptit coup de main serait fort apprécié
merci
Partager