Ça semble fonctionner, mais comme je fais B731 à B737 avec des variables (car pas toujours les mêmes valeurs), mais j'ai soit une erreur de syntaxe, soit une erreur d'exécution:
R = Range("I1").Value
resultat = Application.WorksheetFunction.SumIf(Range("B & R "":B & R + 30"), Range("G" & R), Range("F & R "":F & R + 30"))
EDIT :
D'ailleurs je viens d'y penser je me suis peut-être mal exprimé, car mon écriture dans la macro ressemble à ça :
Range("H" & i).FormulaLocal = "=SI(SOMME.SI($B$" & R & ":$B$" & R + 30 & ";G" & i & ";$F$" & R & ":$F$" & R + 30 & ")=0;0;SOMME.SI($B$" & R & ":$B$" & R + 30 & ";G" & i & ";$F$" & R & ":$F$" & R + 30 & "))"
Le seul problème est le 0 ici :
->0;SOMME.SI
Dans ma formule initiale le 0 est remplacé par "", quand je fais la même en VBA, j'ai une erreur d'exécution