benjilebest
Messages postés15Date d'inscriptionlundi 21 janvier 2013StatutMembreDernière intervention24 janvier 2013
-
12 avril 2010 à 18:22
benjilebest
Messages postés15Date d'inscriptionlundi 21 janvier 2013StatutMembreDernière intervention24 janvier 2013
-
15 avril 2010 à 11:58
Bonjour à tous,
N'étant pas (du tout) calé en programmation je m'en remets à des experts qui voudront bien me consacrer un peu de leur temps libre (d'avance merci)
je souhaite créer un fichier excel tel qu'il suit :
Je dispose de nombre entiers connus qui sont 42, 45, 57 et 54.
je souhaiterais savoir en rentrant un nombre entier aléatoirement, la combinaison de ces 4 nombres pour obtenir celui aléatoire
Je m'explique :
par exemple : 570 = 10 X 57 (facile)
444 = 4 X 57 + 3 X 42 + 2 X 45 (déjà un peu plus complexe ^^)
voila bon j'espère avoir été suffisamment clair merci à toute âme charitable qui me proposera son aide
n'hésitez pas si vous avez des questions ;)
Merci
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 avril 2010 à 09:17
Salut
Sous Excel, il y a le Solveur (Macro complémentaire : Voir l'aide si non encore installée)
Tu mets tes constantes dans 4 cellules (A1 à A4)
A côté, tu mets les coefficients associés (B1 à B4)
Dans une dernière cellule, tu tapes l'équation désirée :
= (A1 * B1) + (A2 * B2) + (A3 * B3) + (A4 * B4)
Tu vas dans le menu "Outils" + "Solveur..."
Dans la cellule à définir, tu mets la cellule contenant la formule.
Dans cellules variables, tu sélectionnes en glissant les cellules B1 à B4.
En face, tu coches "Valeur" et le chiffre recherché, 444
Dans la section "Contraintes", tu ajoutes 4 contraintes :
Chaque cellule servant de coeff (B1 à B4) doit être entière
... et tu cliques sur "Résoudre"
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
benjilebest
Messages postés15Date d'inscriptionlundi 21 janvier 2013StatutMembreDernière intervention24 janvier 2013 13 avril 2010 à 11:26
bon allé pour faire mon difficile ^^
Je souhaiterais automatiser le process en proposant à un utilisateur lambda de rentrer la valeur aléatoire (le fameux 444 ^^)et que ce petit objet lui sorte directement la ou les solutions possibles
Est ce réalisable en enregistrant une macro ? car le problème quand tu coches "valeurs" égal à c'est que tu rentres manuellement la valeur et non une case
donc comment parer à ce problème ?
benjilebest
Messages postés15Date d'inscriptionlundi 21 janvier 2013StatutMembreDernière intervention24 janvier 2013 13 avril 2010 à 14:26
j'ai essayé de faire ceci
Sub Solution()
'
' Solution Macro
'
'
SolverOk SetCell:="$A$9", MaxMinVal:=3, ValueOf:="$B$9", ByChange:="$B$1:$B$6"
SolverSolve
End sub
en définissant en A9 la formule =(A1*B1) + (A2*B2) +...etc et en B9 la valeur que je veux trouver (B1 à B6 étant mes variables)
malheureusement ça marche pas
une tite idée ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 avril 2010 à 14:47
Mais, ça marche.
Tout est expliqué dans l'aide.
Enregistre ta macro dès l'ouverture du classeur : Si tu fais un premier essai sans enregistrer de macro, le Solver garde en mémoire le paramétrage et l'enregistrement ne stockera que les changements, pas l'initialisation/paramétrage.
Comme expliqué dans l'aide, il faut ajouter une référence au VBA pour qu'une macro ait accès au solver.
Si tu ne la trouves pas dans la liste des références, il te faudra chercher le fichier à la main, et, lors d'une installation standard de Office 2003, le fichier SOLVER.XLA est stocké dans le répertoire
C:\Program Files\Microsoft Office\OFFICE11\Bibliothèque\SOLVER
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
benjilebest
Messages postés15Date d'inscriptionlundi 21 janvier 2013StatutMembreDernière intervention24 janvier 2013 15 avril 2010 à 11:58
En creusant un peu j'ai vu que le solveur s'arrêtait dès qu'il trouvait une solution
comment faire lorsque qu'il existe plusieurs solutions pour que le solveur affiche toutes les solutions qui répondent bien aux contraintes spécifiées ?