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 :
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 ?
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 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
Merci d'avance
Partager