Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Additionner des nombres jusqu'à atteindre une certaine valeur

PhilippeCam

XLDnaute Nouveau
Bonjour à tous,

J'ai effectué des recherches sur le Forum, mais n'ai pas trouvé de réponse à mon problème.
Je cherche un moyen automatisé de trier une liste de valeur de manière à obtenir une somme approchant une valeur cible, et répéter l'opération jusqu'à la fin de la liste de valeurs.
Je joins un fichier pour illustrer ma demande, je n'arrive en effet pas à bien expliciter ma demande.

Mercis d'avance pour votre aide
 

Pièces jointes

  • Exemple.xlsx
    8 KB · Affichages: 29
Solution
Voici la macro que vous attendez :
VB:
Sub Calcul()
Dim Lbarre, P As Range, nlig&, lig&, nbarre&, c As Range, i&
Lbarre = 6000
Set P = [A1].CurrentRegion
nlig = P.Rows.Count
Application.ScreenUpdating = False
P.Offset(1, 1).ClearContents
P.Offset(1, 1).Interior.ColorIndex = xlNone
lig = 2
1 If P(lig, 1) > Lbarre Then P(lig, 1).Select: MsgBox "Découpe erronée !", 48: Exit Sub
nbarre = nbarre + 1
P(lig, 2) = nbarre
P(lig, 3) = Lbarre '1ère barre
Set c = P(lig, 4)
c = Lbarre - P(lig, 1)
For i = lig + 1 To nlig
    If P(i, 1) < c And P(i, 2) = "" Then
        P(i, 2) = nbarre
        P(i, 4) = c - P(i, 1)
        Set c = P(i, 4)
    End If
Next i
c.Interior.ColorIndex = 6 'jaune
For i = lig + 1 To nlig
    If P(i, 2) = "" Then
        lig = i...

PhilippeCam

XLDnaute Nouveau
Chapeau bas, Job75...
C'est exactement la routine que je cherchais.
Merci mille fois.
@Gégé-45550 c'est normal que ça ne prenne pas en compte la première ligne, la routine débute à la ligne 2, la ligne 1 étant la ligne de titre.
Je mets le sujet Résolu.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…