|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : mai 2007 Messages : 314 ![]() |
Bonjour tlm,
je cherche a trouver les différentes combinaisons à partir de la somme des chiffres dans la colonne A:A et qui totalisent le nombre 50 A1= 2 A2= 20 A3= 3 A4= 7 A5= 5 A6= 6 A7= 9 A8= 25 A9= 13 le résultat dans la colonne B:B par exemple sera: B1= 25-20-5 B2= 25-20-3-2 B3= 25-9-6-5-3-2 B4= 25-13-7-5 B5= etc … Merci pour votre aide |
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Franck Inscription : février 2008 Messages : 134 ![]() |
Bonjour,
Ton problème est assez casse tête chinois As-tu déjà un bout de code ? pour info, voici ce que j'ai déjà fait pour ton problème. Mais ce n'est pas une solution car je ne prends pas en compte toutes les possibilités ! Il faut encore le modifier mais je te le donne au cas où cela pourrait inspirer quelqu'un ! Code :
Salut, J'ai une piste pour ton problème : les suites mathématiques --> n(n+1) / 2 Par contre, fais-tu cette macro toujours avec 9 nombre ou peut-il y en avoir plus ?
__________________
Pour ceux qui aiment l'art martial vietnamien, les photos du VietNam ou apprendre le Vietnamien venez visiter le site de notre asso "Noi Gia Vo Dao" : http://ngvodao.free.fr |
||
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : mai 2007 Messages : 314 ![]() |
Merci francky74 pour ta réponse,
oui le nombre des données peut s’élever a beaucoup plus car pour ce cas je cherche a identifier les différentes combinaisons des factures pour les matcher avec un montant de chèque reçu (un chèque pour plusieurs factures). les suites mathématiques --> n(n+1) / 2 ? je ne sais pas comment le tester , je sais que le nombre de combinaisons a tester est 9! factoriel pour le cas de 9 factures Merci pour ton aide !! |
|
|
00
|
|
|
#4 | ||||
|
Membre régulier
![]() Franck Inscription : février 2008 Messages : 134 ![]() |
Bonjour,
Oui j'ai trouvé un truc qui marche bien avec les suites, mais c'est pas fini ! Essaye déjà ce code en pas à pas et tu verras où j'en suis : Code :
Je ne comprends pas lorsque tu dis que le nombre de combi à tester est 9 !?! Tu peux donc avoir une liste de 1000 montants mais le nombre de montants à additionner ne dépassera pas 9 ? Cela veut dire que si, par exemple, tu as 1000 fois 1€, tu n'ariveras jamais à 50€ !?! Ais-je bien compris ??? Salut, Je continue là où j'en étais : Code :
Essaie le chez toi et si ca bloque dis moi où. Pour l'instant, cette macro ne calcule que trois additions de lignes mais je vais en ajouter. Il aurait été moins brouillon de faire des boucles mais je ne suis pas très chevronné en VBA donc je fait comme les débutant avancés ... je fait des usines à gaz
__________________
Pour ceux qui aiment l'art martial vietnamien, les photos du VietNam ou apprendre le Vietnamien venez visiter le site de notre asso "Noi Gia Vo Dao" : http://ngvodao.free.fr |
||||
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 869 ![]() |
Je me suis bien amusé avec ton problème. Voici un exemple parfait de l'utilisation de la récursivité des fonctions.
Pour utiliser le code suivant, tu rentres la liste des nombres sur la colonne A, le total en B1 et ça te donne les décompositions sur la colonne C. Ca marche quel que soit le nombre d'éléments sur A. C'est bien sûr la procédure GetAllDecompo qu'il faut lancer Code :
|
||
|
|
10
|
|
|
#6 |
|
Membre régulier
![]() Franck Inscription : février 2008 Messages : 134 ![]() |
Salut !
C'est super ton utilisation des collections ! Tu peux y ajouter des éléments sans avoir à déterminer la taille à l'avance comme on le fait avec un tableau (ReDim) ![]() Par contre, j'ai beau faire fonctionner cette macro, je ne vois aucun résultat apparaître dans le fichier Excel !?!
__________________
Pour ceux qui aiment l'art martial vietnamien, les photos du VietNam ou apprendre le Vietnamien venez visiter le site de notre asso "Noi Gia Vo Dao" : http://ngvodao.free.fr |
|
00
|
|
|
#7 | ||
|
Membre habitué
![]() Inscription : mai 2007 Messages : 314 ![]() |
Merci pour vos réponses,
le code de ZebreLoup fonctionne parfaitement sauf que je ne sais pas s'il y a une possibilité de l'optimiser car il ne fonctionne pas avec des montants supérieurs à 10000 car j'ai testé avec les chiffres (dans colonne A:A) ci-dessous: Citation:
Citation:
merci pour votre aide |
||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 869 ![]() |
Non, en fait, je pensais que c'était forcément des entiers. Essaie en remplaçant les Integer par des Double
EDIT : Nouveau code : Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : mai 2007 Messages : 314 ![]() |
Merci
non toujours le même problème de dépassement de capacité |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 869 ![]() |
Tu n'as pas changé Integer en Double dans le paramètre de la fonction decompo
|
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Inscription : mai 2007 Messages : 314 ![]() |
Merci
ca marche merci il fallait changer integer en double partout merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com