Problème de math ^^ [Résolu]

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

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

444, c'est aussi 2*42 + 8*45
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013

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

Re-bonjour,

Juste un petit mot pour m'avoir donné cette petite astuce qui fonctionne parfaitement ;)
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013

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

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 ?
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
64
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)
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013

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

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 ?