Bonjour, j'ai un souci lors de l'importation en Access de fichier excel.
Je vous link mon code ci-dessous :
ce code est sensé lire tout les fichier contenu dans le dossier ExcelCorrigé, pour chaque fichier il va lire chaque feuille, et il va stocker le résultat de chaque feuille sera stocké dans la table "ExcelBase".
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 'On vide la table excelMOD DoCmd.OpenQuery "R_supp ExcelBase" 'Tester si les fichiers sont là Dim repertoire, Source As String repertoire = Application.CurrentProject.Path ext = "" monrep = repertoire + "\ExcelCorrigé\MHF" Dim fichier As String Dim feuille As String Dim feuilles As Object 'On cherche tout les onglet du fichier excel Set appExcel = CreateObject("Excel.Application") ext = Dir(monrep & "\*.xls") L_MHFMOD.Visible = True L_MHFMOD.DefaultValue = "" Do While ext <> "" fichier = ext Source = monrep + "\" + fichier appExcel.Workbooks.Open FileName:=Source For Each feuilles In appExcel.Sheets feuille = feuilles.Name MsgBox Source + " " + feuille DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ExcelBase", Source, True, feuille Next feuilles ext = Dir Loop
La procédure commence par les fichier excel de petite taille(entre 300 et 8000 lignes). Le dernier fichier excel contient 2 feuilles de (8000 et 57000 lignes). Il charge donc la 1ere ligne et arrivé à la deuxième la barre d'importation en bas ç gauche reste pleine (comme si le chargement était effectué) et ca reste comme ca indéfiniment.
J'ai alors crée un deuxieme code qui fait simplement à la suite les deux chargement de cette table et els stock dans ma table ExcelBase. Ce code est :
Ce code marche. Et je ne comprend pas la différence.
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 'On remplie le fichier excel PHP saisie DoCmd.Hourglass True Dim xlApp As Excel.Application Dim xlSheet As Excel.Worksheet Dim xlBook As Excel.Workbook Dim i As Long, j As Long Dim repertoire As String DoCmd.OpenQuery "R_supp ExcelBase" repertoire = Application.CurrentProject.Path Dim stock As String DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ExcelBase", repertoire + "\ExcelBase\MHF\D7099.xls", True, "51" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ExcelBase", repertoire + "\ExcelCorrigé\MHF\D709952.xls", True MsgBox ("table charger")
Partager