Formule tableau et temps de calcul long
Bonjour à tous,
J'ai un gros tableau de données sur 12 colonnes 33543 lignes. J'ai rajouté une colonne grâce à une macro VBA qui compte le nombre d'apparitions d'un critère (avec les formules SI et NB.SI.ENS).
Voici le code de la macro :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Sub ecrire_colonne_pannes()
Dim Wk As Worksheet
Dim j As Long
Set Wk = Workbooks("BTU.xlsx").Worksheets("Défauts+CTRL (Parcs)")
Wk.Range("M1").Value = "nb pannes"
j = Application.WorksheetFunction.CountA(Wk.Range("D:D"))
With Wk.Range("M2:M" & j)
.FormulaR1C1 = _
"=IF(COUNTIFS(C4,RC[-9],C8,""MONPAN*"")>3,""D"",IF(COUNTIFS(C4,RC[-9],C8,""MONPAN*"")=3,""C"",IF(COUNTIFS(C4,RC[-9],C8,""MONPAN*"")=2,""B"",IF(COUNTIFS(C4,RC[-9],C8,""MONPAN*"")=1,""A""))))"
.Value = .Value
End With
End Sub |
La macro marche, ma colonne est bien créée, mais en revanche le calcul est très long (5% au bout d'une minute...). N'existe-t-il pas un moyen pour accélérer ceci, par exemple procéder au calculs en mémoire avec un array puis transposer cet array sur la colonne correspondante ?
Merci d'avance