Lecture de cellules excel lente
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:
Code:
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 |
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.
J'ai essayé de faire le même programme sous VBA, soit à peut près la même chose:
Code:
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 |
Et l'exécution de ce dernier ne prend que 2 voir 3 secondes...
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