les critères se trouvent sur la plage ("B437:B811")
Non, dans ton code, il n'y a qu'un seul critère composé du texte "B(i+1)".
Si les critères se trouvent sur la plage ("B437:B811"), on doit voir un code qui ressemble à çà :
For i = 436 To 811
With DevisQuantitatif
.Range("C1").End(xlDown).Offset(1, 0) = WorksheetFunction.CountIf(Synthese.Range("D:D"), .Range("B" & i + 1))
End With
Next i
Reste à confirmer dans quelles feuilles se trouvent les différentes plages (difficile à dire sans fichier exemple ... ).
A+