Wooooow c'est le feu t'as macro... je vais aller me coucher je crois
Bien joué,
J'ai fait deux modifs:
MaxC1 = Range("B13").Value - 1
MaxC2 = Range("B14").Value - 1
MaxC3 = Range("B15").Value - 1
-1 car sinon dans tas boucle il allait tjrs a une valeur de plus que la case (je sais pas trop pk en réalité..) mais si tu bridé la condition 1 à 3 jours il pouvait en résultat trouver 4 jours.
Ensuite:
If Abs(TargetTTC - Target) < Ecart Then
C1bis = c1
C2bis = c2
C3bis = c3
End If
L'idée c'est à chaque boucle de garder en mémoire la meilleure combinaison trouvée, comme ca si à la fin aucunes combinaisons n'as d'écart inférieur à 21 et bien on rappelle nos c1bis, c2bis, c3bis pour avoir à défaut la combinaison la plus proche
Quest-ce-t'en pense?
EDIT: met la variable ecart en long ! sinon ca va poser problème lorsque tu auras des grandes sommes ! elle est en integer dans ce que j'ai envoyé
et au lieu de mettre ecart = 99999 j'aurai du mettre ecart = TargetTTC comme ca on est certain du bon fonctionement