CAGR VBA Excel

Bonjour,

Je souhaite automatiser la fonction CAGR grâce à une macro seulement ça bug...

L'idée serait de demander à l'utilisateur les cellules dans lesquelles se trouvent les données (valeur d'arrivée, valeur de départ, année d'arrivée, année de départ) et que la formule finale permettent de retrouver les références des cellules.

Voici l'algorithme écrit :

Sub CAGR()

Dim Vt As Range

Set Vt = Application.InputBox("choisir la valeur d'arrivée", Type:=8)

Dim V0 As Range

Set V0 = Application.InputBox("Choisir la valeur de départ", Type:=8)

Dim Yt As Range

Set Yt = Application.InputBox("Choisir l'année d'arrivée", Type:=8)

Dim Y0 As Range

Set Y0 = Application.InputBox("Choisir l'année de départ", Type:=8)

ActiveCell.Formula = "=(Vt/V0)^(1/(Yt-Y0))-1"

End Sub

Et voici ce que la macro me renvoie : =(@Vt/@V0)^(1/(@Yt-@Y0))-1

Pouvez-vous m'aider svp?

bonjour,

peut-être ainsi

Sub CAGR()
Dim Vt As Range
Set Vt = Application.InputBox("choisir la valeur d'arrivée", Type:=8)

Dim V0 As Range
Set V0 = Application.InputBox("Choisir la valeur de départ", Type:=8)

Dim Yt As Range
Set Yt = Application.InputBox("Choisir l'année d'arrivée", Type:=8)

Dim Y0 As Range
Set Y0 = Application.InputBox("Choisir l'année de départ", Type:=8)

ActiveCell = (Vt / V0) ^ (1 / (Yt - Y0)) - 1

End Sub

Cela marche parfaitement, merci beaucoup !

Juste une question pour mieux comprendre l'erreur, en quoi le fait de rajouter des espaces a changé quelque chose?

bonjour,

j'ai adapté ton instruction qui met une formule (erronée) dans la cellule active en une instruction qui met le résultat de la formule calculé en VBA dans la cellule active. Les blancs qui s'ajoutent sont simplement le résultat de la mise en forme automatique de l'instruction par l'éditeur VBA.

Très clair, merci beaucoup !

Pensez-vous qu'il serait possible d'avoir l'adresse des cellules plutôt que leur valeur en dur afin de pouvoir retrouver la formule dans le résultat final?

re-bonjour,

s'il te faut la formule dans la cellule active, voici

Sub CAGR()
    Dim Vt As Range
    Set Vt = Application.InputBox("choisir la valeur d'arrivée", Type:=8)

    Dim V0 As Range
    Set V0 = Application.InputBox("Choisir la valeur de départ", Type:=8)

    Dim Yt As Range
    Set Yt = Application.InputBox("Choisir l'année d'arrivée", Type:=8)

    Dim Y0 As Range
    Set Y0 = Application.InputBox("Choisir l'année de départ", Type:=8)

    ActiveCell.Formula = "=(" & Vt.Address & "/" & V0.Address & ")^(1/(" & Yt.Address & "-" & Y0.Address & "))-1"

End Sub

Cela fonctionne parfaitement, merci pour votre précieuse aide !

Rechercher des sujets similaires à "cagr vba"