[Excel] Fonction Aléa sans macro
Basil
-
Basil -
Basil -
Bonjour,
Je me retrouve face à un problème sur Excel.
Je voudrais que la somme de cinq chiffres aléatoires soient égale à n connu.
Par exemple si je dis 5, excel génère 1+1+1+2+0
ou 1+0.5+1.5+0+2
Enfin bref.
J'ai essayé sans VB ne maitrisant pas du tout le code, mais je me suis vite retrouver coincé avec la fonction aléatoire en ne pouvant générer des nombres que dans un intervalle donné.
Je serais très reconnaissant si l'un de vous avait une solution dans excel ou si vous aviez un code VB à me proposer que je pourrais personnaliser très facilement.
Merci pour votre aide
Basil
Je me retrouve face à un problème sur Excel.
Je voudrais que la somme de cinq chiffres aléatoires soient égale à n connu.
Par exemple si je dis 5, excel génère 1+1+1+2+0
ou 1+0.5+1.5+0+2
Enfin bref.
J'ai essayé sans VB ne maitrisant pas du tout le code, mais je me suis vite retrouver coincé avec la fonction aléatoire en ne pouvant générer des nombres que dans un intervalle donné.
Je serais très reconnaissant si l'un de vous avait une solution dans excel ou si vous aviez un code VB à me proposer que je pourrais personnaliser très facilement.
Merci pour votre aide
Basil
A voir également:
- [Excel] Fonction Aléa sans macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fonction si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Fonction moyenne excel - Guide
3 réponses
Bonjour,
si tu as une solution sous excel, tu peux la transposer dans VBA en utilisant la fonction Evaluate( ).
regarde dans l'aide pour voir comment elle fonctionne.
il faut cependant transformer ta formule en anglais avec les séparateurs de liste et décimaux qui vont bien.
cette transformation en anglais se fait automatiquement par la manip suivante :
1) insère un onglet Macro Intl MS Excel 4.0 par un clic droit/insérer sur un onglet quelconque
2) copie/colle ta formule dans cet onglet
3) récupère dans la zone d'édition ta formule traduite en anglais
exemple :
la formule =RECHERCHEV(2,123;$L$10:$N$14;2;FAUX) devient =VLOOKUP(2.123,$L$10:$N$14,2,FALSE)
en vba, si tu mets
aa = Evaluate("VLOOKUP(2.123,$L$10:$N$14,2,FALSE)")
ou
bb = [VLOOKUP(2.123,$L$10:$N$14,2,FALSE)]
tu obtiens le résultat que tu avais dans ta feuille de calcul.
Donc tu remplaces recherchev( ) par tes formules de feuille de calcul et tu auras ton résultat.
cordialement
si tu as une solution sous excel, tu peux la transposer dans VBA en utilisant la fonction Evaluate( ).
regarde dans l'aide pour voir comment elle fonctionne.
il faut cependant transformer ta formule en anglais avec les séparateurs de liste et décimaux qui vont bien.
cette transformation en anglais se fait automatiquement par la manip suivante :
1) insère un onglet Macro Intl MS Excel 4.0 par un clic droit/insérer sur un onglet quelconque
2) copie/colle ta formule dans cet onglet
3) récupère dans la zone d'édition ta formule traduite en anglais
exemple :
la formule =RECHERCHEV(2,123;$L$10:$N$14;2;FAUX) devient =VLOOKUP(2.123,$L$10:$N$14,2,FALSE)
en vba, si tu mets
aa = Evaluate("VLOOKUP(2.123,$L$10:$N$14,2,FALSE)")
ou
bb = [VLOOKUP(2.123,$L$10:$N$14,2,FALSE)]
tu obtiens le résultat que tu avais dans ta feuille de calcul.
Donc tu remplaces recherchev( ) par tes formules de feuille de calcul et tu auras ton résultat.
cordialement
Salut, vite fait uniquement avec Excel :
A1 = la valeur que tu veux (ici 5)
B1 = ARRONDI(ALEA()*A1;2)
C1 = ARRONDI(ALEA()*(A1-B1);2)
D1 = ARRONDI(ALEA()*(A1-B1-C1);2)
E1 = ARRONDI(ALEA()*(A1-B1-C1-D1);2)
F1 = A1-(B1+C1+D1+E1)
Appuies sur F9 chaque fois que tu veux actualiser.
Exemple : 10 = 1.93 + 3.29 + 0.35 + 2.56 + 1.87
Ici j'ai limité à 2 décimales..
A1 = la valeur que tu veux (ici 5)
B1 = ARRONDI(ALEA()*A1;2)
C1 = ARRONDI(ALEA()*(A1-B1);2)
D1 = ARRONDI(ALEA()*(A1-B1-C1);2)
E1 = ARRONDI(ALEA()*(A1-B1-C1-D1);2)
F1 = A1-(B1+C1+D1+E1)
Appuies sur F9 chaque fois que tu veux actualiser.
Exemple : 10 = 1.93 + 3.29 + 0.35 + 2.56 + 1.87
Ici j'ai limité à 2 décimales..