bonjour les maitres du vba

Ci dessous le code que j'ai créé avec un peu de mal pour faire une somme selon les types.
En outre, j'ai rentré la zone de K12à k 2000 par prudence car le nombre de ligne pour la colonne K peut changer.
Ce code fonctionne mais parait un peu lent;
y a t il moyen de le simplifier?

A vous lire

cordialement

lps02
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
21
Dim i As Long, LigFin As Long
Dim fct As String, fct1 As String, fct2 As String, fct3 As String, fct4 As String
 
LigFin = [AE65536].End(xlUp).Row
 
For i = 3 To LigFin
    fct = "=SUMPRODUCT($K$12:$K$2000*(($A$12:$A$2000)=" & Range("AE" & i).Address(False, True) & ")*(($G$12:$G$2000)=AF$2))"
    fct1 = "=SUMPRODUCT($K$12:$K$2000*(($A$12:$A$2000)=" & Range("AE" & i).Address(False, True) & ")*(($G$12:$G$2000)=AG$2))"
    fct2 = "=SUMPRODUCT($K$12:$K$2000*(($A$12:$A$2000)=" & Range("AE" & i).Address(False, True) & ")*(($G$12:$G$2000)=AH$2))"
    fct3 = "=SUMPRODUCT($K$12:$K$2000*(($A$12:$A$2000)=" & Range("AE" & i).Address(False, True) & ")*(($G$12:$G$2000)=AI$2))"
    fct4 = "=SUMPRODUCT($K$12:$K$2000*(($A$12:$A$2000)=" & Range("AE" & i).Address(False, True) & ")*(($G$12:$G$2000)=AJ$2))"
    Cells(i, 32) = Evaluate(fct)
    Cells(i, 33) = Evaluate(fct1)
    Cells(i, 34) = Evaluate(fct2)
    Cells(i, 35) = Evaluate(fct3)
    Cells(i, 36) = Evaluate(fct4)
   Range("AK" & i).Formula = "=" & Range("AF" & i).Address(False, True) & "+" & Range("AG" & i).Address(False, True) & "+" & Range("AH" & i).Address(False, True) & "+" & Range("AI" & i).Address(False, True) & "+" & Range("AJ" & i).Address(False, True) & ""
 
Next i
 
End Sub