Bonjour à tous
Je sollicite vos conseils car la macro ci-dessous qui s'appuie sur des fonctions excel Si + SOMMEPROD imbriquées me retourne l'erreur #VALEUR! dans ma colonne résultat lorsque j'applique la méthode Application.Evaluate.
Si je n'applique Evaluate, les résultats retournés (avec la formule!) sont bons mais, compte tenu du nombre d'imbrications SI/SOMMEPROD et du nombre de lignes (10 000) à traiter, le fichier devient presque inutilisable car trop lourd.
Ci-dessous mon code . Je vous remercie par avance de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Boucle() Dim i As Long i = Range("B2").End(xlDown).Row Sheets("CDMAJORA =1").Range("C2").Formula = Application.Evaluate("=IF(SUMPRODUCT((B$2:B$» & i & «=B2)*(L$2:L$» & i & «=""CAVAMAC"")*(O$2:O$» & i & «=""R1001 "")*(Q$2:Q$» & i & «=""N"")*1)<>0,""RAF"", IF(AND(SUMPRODUCT((B$2:B$» & i & «=B2)*(L$2:L$» & i & «=""CAVAMAC"")*(J$2:J$» & i & «=""RIV"")*(O$2:O$» & i & «=""R1001 "")*(Q$2:Q$» & i & «=""A"")*1)<>0, SUMPRODUCT((B$2:B$» & i & «=B2)*(L$2:L$» & i & «<>""CAVAMAC"")*(O$2:O$» & i & «=""R1001 "")*(U$2:U$» & i & «=2))=0),""RAF"",IF(SUMPRODUCT((B$2:B$» & i & «=B2)*(AR$2:AR$» & i & «=""Nb de CIPREG erroné "")*1)<>0,""RAF"",IF(SUMPRODUCT((B$2:B$» & i & «=B2)*(L$2:L$» & i & «=""CAVAMAC"")*(O$2:O$» & i & «=""R1001 "")*((J$2:J$» & i & «=""ACC"")+(J$2:J$» & i & «=""""))*1)<>0, ""RAF"", IF(SUMPRODUCT((B$2:B$» & i & «=B2)*(L$2:L$» & i & «=""CAVAMAC"")*(M$2:M$» & i & «<>1110000000)*(M$2:M$» & i & «<>1100000000))<>0,""RAF"","""")))))") Sheets("CDMAJORA =1").Range("C2").AutoFill Destination:=Sheets("CDMAJORA =1").Range("C$2:C" & i & "") End sub
Partager