Comment accélérer une macro excel
Bonjour,
Je suis novice en VBA et j'aimerai accélérer une macro excel.
La macro effectue une recherche dans une feuille nommée "DATA_INPUT" et renvoi une information dans une feuille nommée "ANALYSIS". Je me demandais comment on pouvait accélérer la macro suivante:
Code:
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
| Sub Extrait_Valeurs_lignes()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim ligne, i As Long
Dim niv_prod_label As String
Dim flag_trouve As Range
Dim FeuilleData, FeuilleAnalysis As Worksheet
Set FeuilleData = ActiveWorkbook.Worksheets("DATA_INPUT")
Set FeuilleAnalysis = ActiveWorkbook.Worksheets("ANALYSIS")
ligne = 1
Dim v As Long
Set DeletePlage = FeuilleData.Cells.Find("5 - VALEUR MOYENNE ENTRE 0 ET T", LookAt:=xlWhole, MatchCase:=True)
For v = 1 To DeletePlage.Row - 1
FeuilleData.Cells(v).EntireRow.Delete
Next
Do Until (FeuilleAnalysis.Cells(ligne, 2).Value = "END" Or ligne = 40000)
niv_prod_label = FeuilleAnalysis.Cells(ligne, 2).Value
If niv_prod_label = "" Then
GoTo lignesuivante
End If
Set flag_trouve = FeuilleData.Cells.Find(FeuilleAnalysis.Cells(ligne, 2).Value, LookAt:=xlWhole, MatchCase:=True)
If flag_trouve Is Nothing Then
MsgBox "Niveau " & niv_prod_label & " non trouvé dans DATA_INPUT !!"
FeuilleAnalysis.Cells(ligne, 3).Value = Null
GoTo lignesuivante
End If
FeuilleAnalysis.Cells(ligne, 3).Value = FeuilleData.Cells(flag_trouve.Row, 3).Value
lignesuivante:
ligne = ligne + 1
Loop
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox "Terminé"
End Sub |
Comme je ne veux pas supprimer les valeurs de la feuille data_input, j'avais penser à copier tout d'abord les valeurs dans une autre feuille ex: data_input2 et de supprimer au fur et à mesure les lignes dans data_input mais je ne sais pas si cela vaut le coup en terme de temps d’exécution.
Merci d'avance pour vos conseils.