Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Calcul de ratios

  • Initiateur de la discussion Initiateur de la discussion gautierbg
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gautierbg

Guest
Bonjour à tous,

je vous joins un fichier excel avec tous les calculs qui doivent etre fait en VBA.

1ere feuille : les caluls de rendements d'une action. (ca c'est bon)

2e feuille : il faudrait calculer la moyenne des rendements, la moyenne du cours de l'action (toutes ces données étant sur la 1e feuille) et l'ecart type des rendements.

Et je galère pour cette deuxieme feuille. Je suis partis sur un truc avec des function et tout mais bon je me prend la tete.

Pouvez vous m'aider?

Merci.

Cordialement

GbG

Option Base 1

Public Plage_Rentas As Range



Sub Statistique()

Dim Resultats() As Variant

Dim ligne As Integer

Dim Feuille As Worksheet

Nbre_Actions = ThisWorkbook.Worksheets.Count - 1

ReDim Resultats(Nbre_Actions, 5)

ligne = 0

For Each Feuille In ThisWorkbook.Worksheets

If Feuille.Name <> "Statistiques" Then

Feuille.Activate

Call Calcule_Rentas

ligne = ligne + 1

Resultats = Statistiques(Feuille, Resultats, ligne)
End If

Next Feuille

Worksheets("Statistiques").Activate
Range("A2").Select

Range(Selection, Selection.Offset(Nbre_Actions - 1, 6)).Value = Resultats


End Sub

Sub Calcule_Rentas()
Range("C3").Select
Set Plage_Rentas = Range(Selection, Selection.End(xlDown)).Offset(-1, 1)
Plage_Rentas.FormulaR1C1 = "=ln((R[1]C2) / RC2)"
MsgBox "Calculs de rendements effectués", vbInformation, "C'EST FINI ..."
End Sub

Sub Delete()
Range("C3").Select
Set Plage_Rentas = Range(Selection, Selection.End(xlDown)).Offset(-1, 1)
Plage_Rentas.Delete
End Sub
Sub del2()
Worksheets("Statistiques").Activate
Dim z As Integer
For z = 1 To 10
Cells(2, 1).Delete
Next
End Sub


Function Statistiques(Feuille, Resultats, ligne)

Resultats(ligne, 1) = Feuille.Name
Resultats(ligne, 2) = Plage_Rentas.Cells.Count

Resultats(ligne, 3) = moyennePlage(Plage_Rentas)
Resultats(ligne, 4) = WorksheetFunction.Median(Plage_Rentas)
Resultats(ligne, 5) = WorksheetFunction.StDev(Plage_Rentas)


Statistiques = Resultats

End Function


Function moyennePlage(plage As Range) As Double
Dim i As Long, compte As Long
moyennePlage = 0
compte = 0
For i = 1 To plage.Count
If (IsNumeric(plage(i).Value)) Then
moyennePlage = moyennePlage + plage(i).Value
compte = compte + 1
End If
Next
moyennePlage = moyennePlage / compte
End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…