Bonjour,
Je souhaite réaliser un petit algorithme avec Excel, mais je ne sais pas comment le faire informatiquement.
De A1 à A20, j'ai les chiffres suivants (du plus petit au plus grand).
3 4 10 10 16 21 25 26 27 27 28 44 46 47 54 54 65 77 78 100
Je souhaite séparer les résultats en 3.
La somme de tous les nombres faits 762.
Et 762/3= 254
Mon but est d'arriver au plus proche de 254 selon les chiffres que j'ai. Mais je ne vais jamais pouvoir arriver à 254 pour les trois séparations du coup je tente de trouver une solution pour arriver au nombre le plus proche.
Je pensais procéder de la façon suivante. Séparation n°1:
- 254-100=154
- 154-78=76 (Ensuite, je ne peux pas faire 76-77, car j'arrive à un nombre négatif donc je prends le chiffre suivant)
- 76-65=11 (Puis, je cherche un nombre qui est égal à 11 ou moins : le nombre en question est 10 donc:)
- 11-10=1 (Et je m'arrête à là)
Du coup j'ai utilisé le nombre 100+78+65+10=253 (assez proche de mon 254 ideal)
Puis je refais la même chose pour la séparation n°2 en excluant bien sur les chiffres 100 78 65 et un des deux 10 de ma liste
- 254-77=177
- 177-54=123
- 123-54=69
- 69-47=22 (Puis, je zappe vers le chiffre le plus proche)
- 22-21=1
Du coup j'ai utilisé le nombre 77+54+54+47+21=253 (assez proche de mon 254 ideal)
Puis pour la dernière solution il suffit d'addition les nombres qui n'ont pas été pris en compte
- 3+4+10+16+25+26+27+27+28+44+46=256
Le code VBA placerait donc soit 1 soit 2 soit 3 sur les cellules commancant de B1 à B20. Donc 1 = solution 1, 2=solution 2 et 3= solution 3
[post-it]Bien évidement si on change les 20 nombres, le code pourrait toujours recréer le même processus...[/post-it]
Merci à vous