Bonjour a tous,

#Contexte
Dans le cadre d'une étude de marché , j'ai une base de donnée organisée de la manière suivante:
Prix | Surface | Px/Surface | Px/Surface Moyen de la ville |Ville
100.000 50 | 2.000 | 4.000 | Paris
200.000 50 | 4.000 | 4.000 | Paris
300.000 50 | 6.000 | 4.000 | Paris
500.000 100 | 5.000 | 6.000 | Marseille
600.000 100 | 6.000 | 6.000 | Maseille
700.000 100 | 7.000 | 6.000 | Marseille

#Objectif
Je souhaite Afficher automatiquement le px/Surface Moyen de la ville par VBA dans la cellule correspondante.

#Demande d'aide:
Voici le code que j'ai pour le moment rédigé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Dim Derlig As Integer, Q As Integer
Dim City As String, Dercity As String
Derlig = Range("A" & Cells.Rows.Count).End(xlUp).Row
City = Sheets(1).Range("f2")
Dercity = Sheets(1).Range("f2")
 
For Q = 1 To Derlig
Do Until Dercity <> City
Dercity = Sheets(1).Range("f" & Q)
Q = Q + 1
Loop
Q = Q - 2
 
Sheets(4).Range("A1") = City
Sheets(4).Range("A2") = Application.WorksheetFunction.SumIf(Sheets(1).Range("F1:F" & Q), "Paris", (Sheets(1).Range("C1:C" & Q)) / Sheets(1).SumProduct((Sheets(1).Range("F1:F" & Q) = "Paris") * (Sheets(1).Range("C1:C" & Q > 0))))
La ligne Application.WorksheetFunction ne fonctionne pas, bien que la formule ci dessous fonctionne dans la cellule excel:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
=SOMME.SI($F$1:$F$4;"Paris";$C$1:$C$4)/SOMMEPROD(($F$1:$F$4="Paris")*($C$1:$C$4>0))
Pouvez-vous revoir le code s'il vous plait ? Je suis également preneur si vous avez une meilleur méthode pour arriver à mes fins.

Merci d'avance pour votre aide.
.
Cdt,
Mandra