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

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

9 réponses

Meilleure réponse
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
3
Merci
PS : Tu peux aussi ajouter comme contrainte que les coeff B1 à B4 doivent être >= à 0

444, c'est aussi 2*42 + 8*45

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013
3
Merci
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 ^^

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de benjilebest
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013
3
Merci
Re-bonjour,

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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de benjilebest
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de benjilebest
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013
3
Merci
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 ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de benjilebest
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de benjilebest
Messages postés
15
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
24 janvier 2013
3
Merci
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 ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de benjilebest