Bonjour à tous,
Je sollicite un peu d'aide car je bloque sur la traduction d'une formule Excel en macro :
=SIERREUR(((NB.SI(Z4:AC4;"*1*")*1)+(NB.SI(Z4:AC4;"*0,75*")*0,75)+(NB.SI(Z4:AC4;"*0,5*")*0,5))/(NB.SI(Z4:AC4;"*1*")+NB.SI(Z4:AC4;"*0,75*")+NB.SI(Z4:AC4;"*0,5*")+NB.SI(Z4:AC4;"*0"));"NC")
ici AC4 est variable.
Le passage en VBA doit me permettre de rendre ma plage variable en prenant comme plage : cellule selectionnée jusqu'à la prochaine cellule vide de la même ligne. Il y a de nombreux exemples presque similaires sur le forum que j'ai essayé d'adapter et qui m'ont permis de coder ceci :
ActiveCell.Offset(0, -1).FormulaR1C1 = _
"=IFERROR(((COUNTIF(RC[1]:RC[" & Range("Y" & ActiveCell.Row).End(xlToRight).Offset(0, 1) & "],""*1*"")*1)+(COUNTIF(RC[1]:RC[" & Range("Y" & ActiveCell.Row).End(xlToRight).Offset(0, 1) & "],""*0,75*"")*0.75)+(COUNTIF(RC[1]:RC[" & Range("Y" & ActiveCell.Row).End(xlToRight).Offset(0, 1) & "],""*0,5*"")*0.5))/(COUNTIF(RC[1]:RC[" & Range("Y" & ActiveCell.Row).End(xlToRight).Offset(0, 1) & "],""*1*"")+COUNTIF(RC[1]:RC[" & Range("Y" & ActiveCell.Row).End(xlToRight).Offset(0, 1) & "],""*0,75*"")+COUNTIF(RC[1]:RC[" & Range("Y" & ActiveCell.Row).End(xlToRight).Offset(0, 1) & "],""*0,5*"")+COUNTIF(RC[1]:RC[" & Range("Y" & ActiveCell.Row).End(xlToRight).Offset(0, 1) & "],""*0"")),""NC"")"
Malheureusement ce code inscrit la formule suivante pour laquelle la plage ne correspond pas à ce que je souhaite :
=SIERREUR(((NB.SI(X4:Y4;"*1*")*1)+(NB.SI(X4:Y4;"*0,75*")*0,75)+(NB.SI(X4:Y4;"*0,5*")*0,5))/(NB.SI(X4:Y4;"*1*")+NB.SI(X4:Y4;"*0,75*")+NB.SI(X4:Y4;"*0,5*")+NB.SI(X4:Y4;"*0"));"NC")
Je suis preneur de la solution si une âme charitable passe par ici
Merci d'avance et bonne journée