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 :

Programme pour l'application d'une formule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 19
    Par défaut
    Salut à tous!

    Alors je ne connais rien sur VBA (ou presque) mais j'ai besoin d'un programme qui exécuterais une formule

    alors voici la formule que le programme doit executer :

    =A1

    =(1+C1)*A1+B1

    =(1+C1+C1^2)*A1+(1+C1)*B1

    =(1+C1+C1^2+C1^3)*A1+(1+C1+C1^2)*B1

    =(1+C1+C1^2+C1^3+C1^4)*A1+(1+C1+C1^2+C1^3)*B1

    =(1+C1+C1^2+C1^3+C1^4+C1^5)*A1+(1+C1+C1^2+C1^3+C1^4)*B1

    etc....
    Soit la cellule A1=8 , B1=-0.2 et C1=0.7

    J'aimerais que ce programme me calcul cette formule et qu'elle mecrive le résultat de chaque étape dans une cellule différente.
    Le résultat avec ces données devrait atteindre 2 à +l'infinie.

    Je pense que c'est facile pour vous, mais je ne suis pas doué du tout :/

    Merci d'avance

    Si cela facilite la chose, vous pouvez commencer direct à l'étape 3.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une fonction basique qui prend les paramètres A, B, C et l'étape n (qui commence à 0)

    A mettre dans un module standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function Poly(ByVal A As Double, ByVal B As Double, ByVal C As Double, ByVal n As Integer) As Double
    Dim Alfa As Double, Beta As Double
    Dim i As Integer
     
    If n >= 0 Then
        Alfa = 1
        For i = 0 To n - 1
            Beta = Alfa
            Alfa = 1 + C * Alfa
        Next i
        Poly = Alfa * A + Beta * B
    End If
    End Function

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 19
    Par défaut
    Merci!

    Mais comment je fais fais pour l'utiliser dans mon cas?
    Désolé vraiment...

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Si tu veux l'appliquer directement par la barre des formules sur la feuille
    Tu écris la fonction dans un module standard
    en A5 tu mets 0
    en A6, tu mets 1
    ...etc

    en B5 tu écris la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Poly($A$1;$B$1;$C$1;A5)
    où en A1, B1 et C1 tu as tes données A1=8 , B1=-0.2 et C1=0.7

    Tu tires la formules jusqu'en bas


    Si tu veux le tout en vba, il suffit d'appeler la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub EcrireFonction()
    Dim i As Integer
     
    With Worksheets("Feuil3")    'à adapter
        For i = 0 To 50
            .Cells(i + 5, 1) = i
            .Cells(i + 5, 2) = Poly(.Range("A1"), .Range("B1"), .Range("C1"), i)
        Next i
    End With
    End Sub
    PS. désolé d'avoir proposé un code clé en main. Pour un étudiant il faudra commencer par le début.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 19
    Par défaut
    Je n'ai pas du tout compris la procédure mais en tout cas ça marche.
    Je vous remercie beaucoup!

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Il te faut comprendre avant d'utiliser sinon tu auras l'aire "pas bien"

Discussions similaires

  1. [Toutes versions] macro pour excel : application d'une augmentation annuelle en %
    Par friseb dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/03/2010, 09h13
  2. [XL-2007] Besoin d'aide pour la syntaxe d'une formule
    Par Joseph67 dans le forum Excel
    Réponses: 3
    Dernier message: 26/07/2009, 21h01
  3. Réponses: 2
    Dernier message: 15/05/2009, 16h11
  4. Réponses: 4
    Dernier message: 10/07/2007, 11h24
  5. modifier la plage d application d une formule
    Par Huubb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/10/2006, 14h31

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