Re : Automatiser des formules avec VBA
Bon ben je reviens demander quelques explications :
j'ai donc grâce à vous un code qui marche pour calculer ma moyenne des vitesses,
et je me suis dit qu'il fallait reprendre les mêmes lignes pour calculer ma direction moyenne en changeant juste la formule dans Evaluate() pour passer de :
=SOMMEPROD((C2:C45)*(B2:B45 =J2))/SOMMEPROD((B2:B45=J2)*1)
à
=180*ATAN2(SOMME.SI(B2:B60;J2; E2:E60);SOMME.SI(B2:B60;J2; F2:F60))/PI()
ce qui me donne en vba:
Sub Teste()
With Sheets("Feuil1")
Dim Derlign As Integer
Dim Lign As Integer
Derlign = Range("B" & Cells.Rows.Count).End(xlUp).Row
For Lign = 2 To Range("J" & Cells.Rows.Count).End(xlUp).Row
.Range("L" & Lign) = Evaluate("=180 * Atan2(SumIf(B2:B" & Derlign & ", J " & Lign & ", E2:E" & Derlign & "), SumIf(B2:B" & Derlign & ",J" & Lign & ",F2:F" & Derlign & ")) / pi()")
Next Lign
End With
End Sub
mais la j'ai beau mettre des Excel.WorksheetFunction.Atan2 à la place de Atan2, mettre Formulalocal au lieu de Evaluate, je n'y arrive pas...