IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Faire une somme des valeurs d'une boucle [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 6
    Par défaut Faire une somme des valeurs d'une boucle
    Hello,

    Je ne sais pas si c'est possible mais j'aimerais faire une somme des valeurs de ma boucle. La fonction est en dessous et j'aimerais avoir ma VANs=somme de chaque p(je ne sais pas si c'est possible de stocker chaque valeur de la boucle pour pouvoir faire une somme).

    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
    17
    18
    19
    Function VANs(r As Variant, cash As Variant, temps As Variant)
     
    Dim i, j, n, m As Integer
    Dim p As Double
     
    n = Application.Count(cash)
    m = Application.Count(temps)
     
    For i = 1 To n
      For j = 1 To m
     
      p = cash(i) * ((1 + r) ^ (-temps(j)))
     
      Next j
    Next i
     
    VANs = ????????
     
    End Function
    Merci d'avance
    Je serai vraiment reconnaissant pour votre aide
    Ps: Je suis un novice sur VBA lol

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Si j'ai bien compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function VANs(r As Variant, cash As Variant, temps As Variant)
        Dim i, j, n, m As Integer
        Dim p As Double
        n = Application.Count(cash)
        m = Application.Count(temps)
        For i = 1 To n
            For j = 1 To m
                p = cash(i) * ((1 + r) ^ (-temps(j)))
                Som = Som + p
            Next j
        Next i
        VANs = Som
    End Function
    Cdlt

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    En typant de façon claire :
    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
     
    Function VANs(r As Variant, cash As Variant, temps As Variant) As Double
     
        Dim i As Integer, j As Integer, n As Integer, m As Integer
     
        n = Application.Count(cash)
        m = Application.Count(temps)
     
        For i = 1 To n: For j = 1 To m
     
            VANs = VANs + cash(i) * ((1 + r) ^ (-temps(j)))
     
        Next j, i
     
    End Function

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 6
    Par défaut
    Merci Arturo83 et These pour vos réactions.

    J'avais déjà essayé ce que vous avez proposé mais ça ne me donne pas le résultat que j'aimerais avoir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function VANs(r As Variant, cash As Variant, temps As Variant) As Double
     
        Dim i As Integer, j As Integer, n As Integer, m As Integer
     
        n = Application.Count(cash)
        m = Application.Count(temps)
     
        For i = 1 To n: For j = 1 To m
     
            VANs = VANs + cash(i) * ((1 + r) ^ (-temps(j)))
     
        Next j, i
     
    End Function
    Je n'ai peut-être pas été assez clair dans ma question:
    En gros je veux que ma fonction VANs fasse une somme de chaque p

    Exemple:
    si je fais cells(7,2)=VANs(r, Range("A1:E1"),Range("A2:E2")), j'aimerais que VANs fasse=A1*r^-A2+B1*r^-B2 etc jusqu'aux dernières cellules de la sélection.

    Je ne sais pas si c'est plus claire comme ça

    Cdlt

  5. #5
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Ceci alors?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function VANs(r As Variant, cash As Variant, temps As Variant)
        Dim i, j, n, m As Integer
        Dim p As Double
        n = Application.Count(cash)
        m = Application.Count(temps)
        For i = 1 To n
            For j = 1 To m
                p = cash(i) * ((1 + r) ^ (-temps(j)))
                Som = Som + p
            Next j
            Tot = Tot + Som
        Next i
        VANs = Tot

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 6
    Par défaut
    @Arturo83, j'ai essayé votre code mais ça ne me donne pas la bonne valeur.

    J'aimerais que la fonction VANs me fasse une somme des différentes actualisations. L'argument "cash" prend la valeur des flux généré par un investissement et l'argument "temps" prend la valeur de la période à laquelle le flux est généré et enfin l'argument "r" prend la valeur du taux d'actualisation.

    La formule d'actualisation d'un montant C= C*(1+r)^(-temps).

    Si je prend un exemple d'une investissement de 1000€ en début de période 1 dans un projet qui générera des flux pendant 4 ans à un taux d'actualisation de 2% on va dire, j'aurais ça:
    temps 0=cash -1000
    temps 1=cash 500
    temps 2=cash 600
    temps 3=cash 200
    temps 4=cash 100

    en temps 0, j'ai un cash de -1000 puisque c'est l'argent que j'ai décaissé pour investir dans le projet en début de période 1 et les 500 en période 1, c'est le cash que génère le projet en fin de période 1.

    J'aimerais donc avoir une fonction VANs qui va me permettre d'actualiser tout ce flux de tréso et ramener tout au temps 0:
    VANs=(-1000*(1+2%)^(-0))+(500*(1+2%)^(-1))+...+(100*(1+2%)^(-4))

    Voilà un peu ce que j'aimerais que ma fonction fasse. Je ne sais pas si c'est possible

    Merci encore pour vos réactions, en espérant trouver une solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] faire la somme des valeurs d'une rubrique
    Par kinansoag dans le forum WinDev
    Réponses: 5
    Dernier message: 15/07/2011, 18h59
  2. faire la somme des valeurs d'une plage de cellule
    Par Iichham dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/06/2011, 14h35
  3. Réponses: 15
    Dernier message: 21/05/2010, 00h36
  4. Réponses: 2
    Dernier message: 28/08/2008, 08h52
  5. Réponses: 9
    Dernier message: 18/02/2008, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo