Problème de math ^^

Résolu
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 janvier 2013 - 12 avril 2010 à 18:22
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 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

Ben

9 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 avril 2010 à 09:21
PS : Tu peux aussi ajouter comme contrainte que les coeff B1 à B4 doivent être >= à 0

444, c'est aussi 2*42 + 8*45
3
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 janvier 2013
13 avril 2010 à 09:37
Merci pour la réponse
je vais essayer ça de suite ;) je test et reviens vers toi

Ben

PS : il est vrai que c'est plus simple pour 444, c'était pour l'exemple ^^
3
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 janvier 2013
13 avril 2010 à 11:20
Re-bonjour,

Juste un petit mot pour m'avoir donné cette petite astuce qui fonctionne parfaitement ;)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 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 ?

Merci
3
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 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 ?
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
3
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 janvier 2013
15 avril 2010 à 09:13
ok merci pour l'aide ;) je vais me plonger dans l'aide j'ai vu pas mal de petites options interessantes merci beaucoup pour tout

Ben
3
benjilebest Messages postés 15 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 24 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 ?
3
Rejoignez-nous