Я вижу две возможные проблемы, вы можете опубликовать пример ваших данных? Это может быть проблемой: Dim sumFonctionnel As Integer
если у вас есть более 32,767 в сумме, это приведет к увеличению буфера, поскольку это предел для целых чисел.
Измените его на Long, чтобы увеличить свой предел, однако, если у вас есть десятичное число точки на любых числах, как long, так и int, отрубят их, поэтому используйте что-то вроде double.
Также не делайте этого:
DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
Сделайте это вместо:
DerniereLigne = Range("A" & rows.count).end(xlup).Row
Последняя ячейка также имеет тенденцию захватывать пустое пространство, это будет захватывать последний ряд фактических данных в столбце А.
Невозможно сделать для вас гораздо больше без выборочных данных