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 :

Macro pour simplifier l'exécution d'un calcul [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Points : 394
    Points
    394
    Par défaut Macro pour simplifier l'exécution d'un calcul
    Bonsoir,

    Alors je présente la situation :

    Je voudrais en fait sommer les valeurs d'une colonne en fonction de la valeur d'une cellule sur une autre colonne puis afficher un résultat.
    Je m'explique : Par exemple j'ai sur une colonne les valeurs respectivement sur chaque ligne en partant de la ligne 2 : 10, 20, 30, 10, 5, 5 et donc je voudrais sommer ces valeurs en fonction de la valeur d'une cellule on va prendre par exemple 40 dans notre cas donc la macro devrait sommer ces valeurs en partant vers le bas tel que leur somme soit inférieur ou égale à 40 donc ici la somme se fera sur les cellules contenant les valeurs : 5, 5, 10 = 20 < = 40.

    J'ai essayé avec le code suivant mais en vain :

    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
    Sub Calcul()
     
    Dim X, Somme As Integer
    X = ActiveCell.Row
    Somme = 0
    J = 0
    Do
       For i = 2 To X
       Somme = Somme + Cells(i + J, 5).Value
       Next
       J = J + 1
    Loop While Somme >= Cells(X, 4).Value
     
     
    Cells(X, 6).Value = Somme
     
    End Sub
    Merci de m'éclairer sur le sujet.

    Cordialement.

  2. #2
    Membre habitué
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Points : 172
    Points
    172
    Par défaut
    Bonjour Kiouane.

    Avec en colonne A à partir de la ligne 2 les valeurs que tu as donné.
    En [e2] le résultat que tu souhaites

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub addition()
    Dim f As Long, r As Long, c As Long
    f = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    r = [e2].Value
    c = 0
     
    For i = f To 2 Step -1
            If c + Cells(i, 1).Value <= r Then c = c + Cells(i, 1): Cells(i, 2) = c
    Next i
    End Sub
    On note le résultat intermédiaire en colonne B

  3. #3
    Membre averti Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Points : 394
    Points
    394
    Par défaut
    Merci pour ta réponse mais en fait ce n'est pas exactement ce dont j'ai besoin.

    Je vais essayer d'être plus clair.

    Disons sur la cellule A5 on a la valeur 40.

    Sur les cellules B1: 10
    B2: 5
    B3: 5
    B4: 10
    B5: 15

    Je voudrais utiliser un bouton et clique par exemple dans ce cas là sur la cellule C5, Sommer les cellules de la colonne B tel que la somme soit inférieure ou égale à 40 en partant vers le bas ici on aura affiché sur C5 la valeur : 35 = 15 + 10 + 5 + 5.

    Encore merci,

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Points : 172
    Points
    172
    Par défaut
    Quelle différence avec ce que j'ai proposé ?
    Je somme les valeurs nécessaires, tu souhaites afficher également le calcul total ?

  5. #5
    Membre averti Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Points : 394
    Points
    394
    Par défaut
    En fait ta solution met sur la deuxième colonne 3 valeurs qui somment à chaque fois les valeurs précédentes sur la première colonne.

    Moi ce que je voudrais c'est d'avoir sur une cellule la somme des valeurs inférieures ou égale à mon objectif.

  6. #6
    Membre averti Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Points : 394
    Points
    394
    Par défaut
    Un grand merci encore j'ai juste modifié quelques paramètres et c'est réglé grâce à ton aide précieuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub addition()
    Dim f As Long, r As Long, c As Long
    f = ActiveCell.Row
    r = Cells(f, 3).Value
    c = 0
     
    For i = f To 2 Step -1
            If c + Cells(i, 1).Value <= r Then c = c + Cells(i, 1)
            Cells(f, 4) = c
    Next i
    End Sub

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

Discussions similaires

  1. macro pour calculer les valeurs
    Par Daniela dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/10/2009, 09h56
  2. [OL-2003] Exécution d'une macro pour transférer un mail en y attachant le mail original
    Par Dailyplanet dans le forum VBA Outlook
    Réponses: 7
    Dernier message: 09/04/2009, 17h56
  3. Macro pour calculer 5700 cellules
    Par Blord dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 28/10/2008, 21h14
  4. macro pour calculer la vitesse d'execution d'une macro
    Par victorzecat dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/12/2007, 15h34
  5. comment forcer l'exécution des macros pour une seule base ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 21/08/2006, 12h59

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