bonjour ,
Meric pour os remarques.
Je te confirme que ma formule fonctionne avec "." car il renvoie dans .Formula le " : ".
Ma fonction fait une sommeprod, stocke un résultat intermédiaire (dans SProdTemp) et l'ajoute à la boucle suivante qui fait un nouveau sommeprod sur d'autres valeurs. L'ensemble m'amène à une somme de Sommeprod.
La formule fonctionne j’obtiens par exemple:
=SOMMEPROD((L13C2:L173C2=1)*(L13C32:L173C32)*(L13C8:L173C8)) * L12C8+33
Où "+33" est le résulat du sommeprod précédent (=SProdTemp)
Sauf que cette valeur est toujours un entier alors que le calcul est parfois un nombre décimal. Aisni, le code arrondi à la valeur sans décimal. Mais 'jai des résulta de 0, 7 par exemple, arrondis à 0 qui se cumule à d'autres arrondis à 0.
Ce qui me donne 0 alors qu'ein réalité c'est par exemple 3 ou 4 ou autre.
Je voudrai donc que cette formule
Cells(derlig + 4, colVar2).Formula = "=SUMPRODUCT((" & Cells(LignVar1, ColVar1 - K).Address & "." & Cells(LignVar2, ColVar1 - K).Address & "=" & LevNb & ")*(" & Cells(LignVar1, ColVar1).Address & "." & Cells(LignVar2, colVar2).Address & ")*(" & Cells(LignVar1, ColVar1 - K + 6).Address & "." & Cells(LignVar2, colVar2 - K + 6).Address & ")) * " & Cells(LignVar1 - 1, ColVar1 - K + 6).Address & "+" & SProdTemp
SProdTemp = Cells(derlig + 4, colVar2)
aboutisse à un résultat en conservant les valeurs décimales. Le problème (à mon avis) vient du mélange des genres: Entier, Adresse, plage, variable,...