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é:
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:
=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
Partager