Bonjour à tous,
Je vous explique mon problème :
Je dispose d'une application access qui peut générer des statistiques en exportant certains résultats dans un onglet d'un classeur excel qui contient les données brutes. Les statistiques "lisibles" sont ensuite générées par excel par la suite.
J'utilise le code suivant pour mettre à jour ma feuille excel :
Le problème, c'est que l'écriture est extremement longue (environ 40 secondes quand sSQL retourne une dizaine de lignes!)
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 Set MyExcelApplication = CreateObject("Excel.Application") ' Définit le fichier EXCEL à ouvrir Set MyWorkbook = MyExcelApplication.Workbooks.Open("" & CheminFichierSource) Set MySheet = MyWorkbook.Sheets("Data") MyExcelApplication.Windows("" & NomFichierSource).Visible = True (...) Set rst = CurrentDb.OpenRecordset(sSQL) 'extraction des données a exporter vers excel rst.MoveFirst i = 2 'on exporte les données vers un template deja créé ou la premiere ligne est remplie. on commence donc a 2 While Not rst.EOF ' Place du texte dans les cellules de la feuille à la ligne j, et sur la colonne i (il y a 17 colonnes utiles). j = 1 While j <= 18 MySheet.Application.Cells(i, j).Value = rst.Fields(j - 1) j = j + 1 Wend i = i + 1 rst.MoveNext Wend
Instinctivement je dirais que le probleme vient du fait qu'on écrit "case par case", mais j'aimerais avoir vos avis la dessus avant de trop faire n'importe quoi!
Connaissez-vous un moyen pour accélérer un peu l'opération?
Merci d'avance pour votre aide
Partager