Bonjour,
Je suis en train de faire un addin pour Excel grâce au langage visual basic. Je dois récupérer une multitude d'informations répertoriées dans un document Excel. Je souhaite les aspirer dans un tableau tel que vous pouvez le voir ci-dessous:
Le programme est simple et fonctionne bien. Le problème, c'est que c'est TRES lent! Il faut presque 10 minutes pour tout récupérer.
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 Dim WkBk_RQL As Excel.Workbook Dim MyExcelApplication As Excel.Application Dim WkSh_RequirementList As Excel.Worksheet MyExcelApplication = New Excel.Application MyExcelApplication.Visible = True WkBk_RQL = MyExcelApplication.Workbooks.Open("C:\Test.xls") WkSh_RequirementList = WkBk_RQL.Sheets("2_RequirementsList") MyExcelApplication.Calculation = Excel.XlCalculation.xlCalculationManual MyExcelApplication.ScreenUpdating = False MyExcelApplication.WindowState = Excel.XlWindowState.xlMinimized Dim s_ValeurRequirementList(2900, 40) As String Dim i, j As Integer For i = 1 To 2900 For j = 1 To 40 s_ValeurRequirementList(i, j) = WkSh_RequirementList.Range("A1").Offset(i, j).Value Next Next
J'ai essayé de faire le même programme sous VBA, soit à peut près la même chose:
Et l'exécution de ce dernier ne prend que 2 voir 3 secondes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim i As Integer Dim j As Integer Dim s_value(2900, 35) As String Dim wksh_RequirementList As Worksheet Set wksh_RequirementList = ActiveSheet For i = 9 To 2900 For j = 1 To 35 s_value(i, j) = wksh_RequirementList.Rows(i).Cells(j).Value Next Next
Quelqu'un est-t-il au courant de ce problème? Est ce moi qui ne fait pas le programme correctement?
J'espère que vous aurez une idée.
Merci
Partager