Salut achraf,
un esai
Sub test()
Dim x As Worksheet, y As Worksheet
Dim rng As Range
Dim DerLign As Long, i As Long, j As Long
Set x = Worksheets("BD")
Set y = Worksheets("output")
Set rng = x.Range("B3:B20")
' filtrer la liste unique des villes et la copier dans la feuille output
rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=y.Range("A17"), Unique:=True
rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=y.Range("B17"), Unique:=True
' copier la ligne des prix
x.Range("G3:N3").Copy y.Range("F17")
' inserer la formule dans la plage F18:M20
DerLign = y.Cells(y.Rows.Count, "A").End(xlUp).Row
For i = 18 To DerLign
For j = 6 To 13
y.Cells(i, j).FormulaR1C1 = "=SUMIF(BD!R4C3:R19C3,output!RC2,BD!R4C[1]:R19C[1])"
Next j
Next i
End Sub