Bonjour
Pas trop doué sur les formules c'est la raison pour laquelle je te propose cette fonction, Mais sur que quelqu'un va te proposer quelque-chose!
Comment cela fonctionne:?
k représente la valeur à rechercher ici n Chantier
Function maj(k)
Application.Volatile
colmaj = Array(19, 20, 22, 23, 24, 26) 'Colmaj représente un tableau définissant les colonne concernées par la 'majoration
majoration = Array(0.25, 0.5, 0.5, 0.75, 1) 'majoration est aussi un tableau en relation avec colmag
' exemple: la colonne 19 (s) sera majorée de 0.25, la 20 de 0.5
Set zone = k.Parent.Range("i9:i50")
For Each i In zone 'parcours de la colonne i pour chaque valeur de la zone....
If i.Value = k.Value Then ' si =à k variable passé dans la fonction(k)
For ncol = 0 To UBound(colmaj) - 1 ' on regarde toutes les colonnes concernées, et on fait la somme au 'faire et à mesure multiplier par la majoration.
s = s + (k.Parent.Cells(i.Row, colmaj(ncol))) * majoration(ncol)
Next
End If
Next
maj = s 'ici on renvoi la somme calculée
End Function