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 :

Fonction avec boucle pour multiplier deux variables


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
    Financier
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Financier

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut Fonction avec boucle pour multiplier deux variables
    Bonjour à tous !

    Je viens chercher de l'aide ici car j'aime créer une fonction permettant de faire la chose suivante : j'ai deux colonnes avec des données ( col A et col B avec des taux dans chaque colonnes)
    et je souhaite multiplier A1 * B1 + A2 * B2 + ... + A7*B7.

    Je ne sais pas comment faire pour boucler ça ...


    N'arrivant pas à faire une fonction, j'ai tester:
    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
    Function Rentabilite(Renta As Double, Poids As Double)
    Dim i As Long
    Dim j As Long
     
    Renta = Cells(i, 1)
    Poids = Cells(1, j)
     
    For i = 1 To 2
     For j = 1 To 2
     
    Rentabilite = Renta * Poids
     Next j
     
    Next i
     
    End Function
    Cela ne fonctionne pas ...

    Merci à vous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par VBANoJutsu Voir le message
    Bonjour,

    ???
    C'est donné directement par la fonction SOMMEPROD.

    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function Rentabilite(ByVal AireRentabilite As Range, ByVal AirePoids As Range) As Double
             Rentabilite = WorksheetFunction.SumProduct(AireRentabilite, AirePoids)
    End Function

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    C'est donné directement par la fonction SOMMEPROD.
    Autre solution : une formule matricielle =SOMME(A1:A7*B1:B7) à valider avec Ctrl+Shift+Entrée

    En VBA, il faut passer par FormulaArray : https://docs.microsoft.com/fr-fr/off...ectedfrom=MSDN

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Salut Menhir,

    Pour avoir testé avant de mettre en ligne, ma fonction donne aussi la bonne valeur.

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Bonjour Eric
    Citation Envoyé par Eric KERGRESSE Voir le message
    Pour avoir testé avant de mettre en ligne, ma fonction donne aussi la bonne valeur.
    Je n'en doute pas.
    C'est pourquoi j'ai écris dans mon message "autre solution" : c'est ni mieux ni pire, simplement une autre approche.

    Cela dit, d'un point de vue personnelle, une formule aussi bien avec SOMMEPROD que fonction matricielle me semble si simple que je ne vois pas l'intérêt d'une fonction VBA.

  6. #6
    Membre averti
    Homme Profil pro
    Financier
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Financier

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut
    Bonjour à tous et merci pour votre aide !

    Effectivement Eric cela fonctionne très bien mais le professeur qui m'a donné cet exercice m'a dit de le faire avec un boucle, c'est pour ça que j"étais bloqué.
    Moi j'ai testé avec deux valeurs , lui il veut qu'on boucle sur 7 valeurs , il nous a dit de partir sur un i=1 to 7 (en gros 7 valeurs colonne A et pareil en B)

    Est-ce possible ?

    Merci à tous

Discussions similaires

  1. Rajouter variable dans fonction avec boucle
    Par bergoliv dans le forum Langage
    Réponses: 12
    Dernier message: 03/09/2010, 21h37
  2. GENIO - Fonction avec Boucle
    Par Slyten dans le forum OTIC (ex-Genio)
    Réponses: 6
    Dernier message: 25/09/2009, 16h04
  3. Réponses: 1
    Dernier message: 14/08/2009, 12h19
  4. boucle pour "remplissage" de variable
    Par cocoty dans le forum SAS Base
    Réponses: 4
    Dernier message: 30/07/2008, 14h57
  5. Réponses: 3
    Dernier message: 23/08/2007, 00h39

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