Générer somme aléatoire entre 2 nombres
Fermé
oscar199788
Messages postés
7
Date d'inscription
dimanche 30 août 2020
Statut
Membre
Dernière intervention
1 septembre 2020
-
30 août 2020 à 20:47
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 1 sept. 2020 à 12:19
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 1 sept. 2020 à 12:19
16 réponses
Raymond PENTIER
Messages postés
58388
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 avril 2024
17 088
31 août 2020 à 01:55
31 août 2020 à 01:55
Bonsoir.
Et j'ai bien peur que ce que tu appelles "somme" (addition, pour Excel), c'est en réalité "valeur" ...
Pourrais-tu envoyer un fichier Excel avec des exemples de ce que ton tableau devrait proposer ?
Je dois avouer que je n'ai pas compris grand-chose à ton laïus ...En effet tu veux des nombres aléatoires tantôt entre 8 et 20, tantôt entre 200 et 1000 !
Et j'ai bien peur que ce que tu appelles "somme" (addition, pour Excel), c'est en réalité "valeur" ...
Pourrais-tu envoyer un fichier Excel avec des exemples de ce que ton tableau devrait proposer ?
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Il existe aussi :
1) https://mon-partage.fr/
2) https://www.transfernow.net/
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
Modifié le 31 août 2020 à 08:49
Modifié le 31 août 2020 à 08:49
Bonjour,
D'après ce que j'ai compris, réalisé en VBA
Le fichier
https://mon-partage.fr/f/1W06tkd8/
Cdlt
D'après ce que j'ai compris, réalisé en VBA
Sub Generateur() Dim Val_Min As Integer, Val_Max As Integer Dim Alea_Min As Integer, Alea_Max As Integer Dim Lig As Long, Somme As Long, Valeur As Long Application.ScreenUpdating = False Columns(1).ClearContents Val_Min = Range("D1").Value 'Valeur minimale de départ Val_Max = Range("E1").Value 'Valeur maximale à atteindre Alea_Min = Range("D4").Value 'Valeur aléatoire minimale Alea_Max = Range("E4").Value 'Valeur aléatoire maximale Range("B1").Value = Val_Min Lig = 1 Somme = Val_Min Randomize Do Lig = Lig + 1 Valeur = Int((Alea_Max - Alea_Min + 1) * Rnd) + Alea_Min Somme = Somme + Valeur Cells(Lig, "B").Value = Somme Cells(Lig, "A").Value = Valeur Loop While Cells(Lig, "B") < Val_Max If Cells(Lig, "B") > Val_Max Then Cells(Lig, "B") = Val_Max End Sub
Le fichier
https://mon-partage.fr/f/1W06tkd8/
Cdlt
oscar199788
Messages postés
7
Date d'inscription
dimanche 30 août 2020
Statut
Membre
Dernière intervention
1 septembre 2020
31 août 2020 à 11:07
31 août 2020 à 11:07
Bonjour à tous et merci pour votre aide
@ Raymond
Je vais essayer d’être plus clair…
C’est pour un jeu de hasard qui a pour montant minimum 200 et maximum 1000
Tant que le montant n’a pas été découvert, celui-ci va augmenter aléatoirement d’un montant compris entre plus 8 minimum et plus 20 maximum
En exemple je souhaite cela :
Fichier Excel, en A1=200 en A2=214 en A3=231 en A4=240 en A5=248 ect…
D’où des sommes qui augment aléatoirement
Je souhaite pouvoir automatiser le classement
Je désir effectuer cela sur environ +/- 60 cellules.
Ci dessous une idée de ma demande.
https://www.cjoint.com/c/JHFimTKNdZF
@frenchie83
C'est quelque chose comme ton fichier que je souhaite
La procédure que tu explique s dans ton message c'est du charabia pour moi...
Dans ton fichier je ne peux pas accéder a ton générateur, moi je suis avec excel 2003 et ton fichier semble d'un Excel plus récent et ça me dit "macro désactivée" etc...
Je ne maîtrise pas grand chose avec excel, un peu nul de chez nul, bref il me faut un truc simple...
cdlt
@ Raymond
Je vais essayer d’être plus clair…
C’est pour un jeu de hasard qui a pour montant minimum 200 et maximum 1000
Tant que le montant n’a pas été découvert, celui-ci va augmenter aléatoirement d’un montant compris entre plus 8 minimum et plus 20 maximum
En exemple je souhaite cela :
Fichier Excel, en A1=200 en A2=214 en A3=231 en A4=240 en A5=248 ect…
D’où des sommes qui augment aléatoirement
Je souhaite pouvoir automatiser le classement
Je désir effectuer cela sur environ +/- 60 cellules.
Ci dessous une idée de ma demande.
https://www.cjoint.com/c/JHFimTKNdZF
@frenchie83
C'est quelque chose comme ton fichier que je souhaite
La procédure que tu explique s dans ton message c'est du charabia pour moi...
Dans ton fichier je ne peux pas accéder a ton générateur, moi je suis avec excel 2003 et ton fichier semble d'un Excel plus récent et ça me dit "macro désactivée" etc...
Je ne maîtrise pas grand chose avec excel, un peu nul de chez nul, bref il me faut un truc simple...
cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
31 août 2020 à 11:58
31 août 2020 à 11:58
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
31 août 2020 à 11:45
31 août 2020 à 11:45
Bonjour à tous
En C16 essaies
=C15+8+ENT(13*ALEA())
à tirer vers le bas
Cdlmnt
En C16 essaies
=C15+8+ENT(13*ALEA())
à tirer vers le bas
Cdlmnt
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
31 août 2020 à 11:57
31 août 2020 à 11:57
et si c'est en VBA (pour figer les valeurs)
Range("C16").Value = int(8+13*rnd)
Cdlmnt
Range("C16").Value = int(8+13*rnd)
Cdlmnt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oscar199788
Messages postés
7
Date d'inscription
dimanche 30 août 2020
Statut
Membre
Dernière intervention
1 septembre 2020
31 août 2020 à 12:59
31 août 2020 à 12:59
@Frenchie83
trop compliqué pour moi...
Merci
@ccm81
top top top c'est exactement ça
La première solution je pense avoir compris
VBA pas pour moi c'est du charabia!!!
Une petite précision est-ce que c'est possible d'être vraiment entre les sommes 200 et 1000
Car quand je tire vers le bas j'arrive par exemple à 994, puis 1009, puis 1017, si j'efface 1017 et 1009 je retombe à 987!!!
Pour atteindre 1000 en partant de 200 et avec ta formule je suis sur 57 cellules.
Si je veux faire sur moins de cellules ou sur plus de cellules il me faut modifier quoi?
Cdt
trop compliqué pour moi...
Merci
@ccm81
top top top c'est exactement ça
La première solution je pense avoir compris
VBA pas pour moi c'est du charabia!!!
Une petite précision est-ce que c'est possible d'être vraiment entre les sommes 200 et 1000
Car quand je tire vers le bas j'arrive par exemple à 994, puis 1009, puis 1017, si j'efface 1017 et 1009 je retombe à 987!!!
Pour atteindre 1000 en partant de 200 et avec ta formule je suis sur 57 cellules.
Si je veux faire sur moins de cellules ou sur plus de cellules il me faut modifier quoi?
Cdt
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
Modifié le 31 août 2020 à 14:18
Modifié le 31 août 2020 à 14:18
En C16
=SI(OU(C15=1000;C14="");"";SI(C15+20 < 1000;C15+8+ENT(13*ALEA());1000))
https://www.cjoint.com/c/JHFmpOIPvYB
Le pb, c'est que à chaque changement dans la feuille, les formules seront recalculées. Pour figer les valeurs, il faut passer par vba
J'ai aussi Excel 2003, si tu penses que les macros (vba) sont nécessaires, tu dis, ce n'est pas la mer à boire
Cdlmnt
=SI(OU(C15=1000;C14="");"";SI(C15+20 < 1000;C15+8+ENT(13*ALEA());1000))
https://www.cjoint.com/c/JHFmpOIPvYB
Le pb, c'est que à chaque changement dans la feuille, les formules seront recalculées. Pour figer les valeurs, il faut passer par vba
J'ai aussi Excel 2003, si tu penses que les macros (vba) sont nécessaires, tu dis, ce n'est pas la mer à boire
Cdlmnt
oscar199788
Messages postés
7
Date d'inscription
dimanche 30 août 2020
Statut
Membre
Dernière intervention
1 septembre 2020
31 août 2020 à 15:15
31 août 2020 à 15:15
Houlla je patauge...
Pour les macros (vba)je ne connaît pas.
Le fait que les valeurs soient recalculées ce n'est pas un problème et c'est même mieux pour ce que je veux faire. Ça va éviter les répétitions logique sur le long terme.
Donc on va reste simple...
Ne tiens plus compte du fichier de départ que j'ai mis en pièce jointe.
Je ne comprend pas comment appliquer ta formule pour une cellule donnée.
Peux-tu me mettre la formule pour : je doit démarrer en E6 à 200...
Parce que si j'applique à ma feuille en E5 et E4 je n'ai pas de montant!!!
Pour les macros (vba)je ne connaît pas.
Le fait que les valeurs soient recalculées ce n'est pas un problème et c'est même mieux pour ce que je veux faire. Ça va éviter les répétitions logique sur le long terme.
Donc on va reste simple...
Ne tiens plus compte du fichier de départ que j'ai mis en pièce jointe.
Je ne comprend pas comment appliquer ta formule pour une cellule donnée.
Peux-tu me mettre la formule pour : je doit démarrer en E6 à 200...
Parce que si j'applique à ma feuille en E5 et E4 je n'ai pas de montant!!!
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
31 août 2020 à 15:32
31 août 2020 à 15:32
Tu as 200 en E6
Formule (un peu différente) en E7
=SI(OU(E6=1000;E6="");"";SI(E6+8+ENT(13*ALEA())>1000;1000;E6+8+ENT(13*ALEA())))
https://www.cjoint.com/c/JHFnGspVReB
Cdlmnt
Formule (un peu différente) en E7
=SI(OU(E6=1000;E6="");"";SI(E6+8+ENT(13*ALEA())>1000;1000;E6+8+ENT(13*ALEA())))
https://www.cjoint.com/c/JHFnGspVReB
Cdlmnt
oscar199788
Messages postés
7
Date d'inscription
dimanche 30 août 2020
Statut
Membre
Dernière intervention
1 septembre 2020
31 août 2020 à 15:39
31 août 2020 à 15:39
Oups j'ai oublier le fichier
https://www.cjoint.com/c/JHFnMIby7nF
Cdt
https://www.cjoint.com/c/JHFnMIby7nF
Cdt
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
31 août 2020 à 15:53
31 août 2020 à 15:53
Voilà
https://www.cjoint.com/c/JHFn00A4YXB
Cdlmnt
https://www.cjoint.com/c/JHFn00A4YXB
Cdlmnt
oscar199788
Messages postés
7
Date d'inscription
dimanche 30 août 2020
Statut
Membre
Dernière intervention
1 septembre 2020
31 août 2020 à 16:00
31 août 2020 à 16:00
C'est super top.
Je progresse et je te suis...
Bon si je l'applique a mon fichier (celui du dernier message juste au dessus)
J'arrive à 1000 au jeudi 24 case C (cellule E59)
Alors que je souhaite arrive à 1000 mercredi 30 case C (cellule E71)
Je progresse et je te suis...
Bon si je l'applique a mon fichier (celui du dernier message juste au dessus)
J'arrive à 1000 au jeudi 24 case C (cellule E59)
Alors que je souhaite arrive à 1000 mercredi 30 case C (cellule E71)
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
31 août 2020 à 20:20
31 août 2020 à 20:20
Donc on va reste simple...
C'est raré ;-)
Alors que je souhaite arrive à 1000 mercredi 30 case C (cellule E71)
Avec cette contrainte, je ne vois pas de solution hors macro (vba)
https://www.cjoint.com/c/JHFssuPGSKB
Cdlmnt
C'est raré ;-)
Alors que je souhaite arrive à 1000 mercredi 30 case C (cellule E71)
Avec cette contrainte, je ne vois pas de solution hors macro (vba)
https://www.cjoint.com/c/JHFssuPGSKB
Cdlmnt
Raymond PENTIER
Messages postés
58388
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 avril 2024
17 088
1 sept. 2020 à 02:13
1 sept. 2020 à 02:13
Dans ton post #3 tu écris
"C'est pour un jeu de hasard ...
Je ne maîtrise pas grand chose avec excel, un peu nul de chez nul, bref il me faut un truc simple ..."
Il faut savoir que les jeux sont plus difficiles à gérer sur Excel que tous les autres types de problèmes !
"C'est pour un jeu de hasard ...
Je ne maîtrise pas grand chose avec excel, un peu nul de chez nul, bref il me faut un truc simple ..."
Il faut savoir que les jeux sont plus difficiles à gérer sur Excel que tous les autres types de problèmes !
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
1 sept. 2020 à 07:34
1 sept. 2020 à 07:34
Bonjour à tous,
En plus de ce que viennent de dire Raymond PENTIER et ccm81 que je salue, ce que vous demandez est impossible à faire simplement. Vous voulez trouver des valeurs aléatoires qui viennent se cumuler à une valeur de départ (ici 200) pour arriver à une valeur de fin(ici 1000) mais en plus avec une nombre de cellules déterminées et de surcroit, variable en fonction du mois sélectionné. L'aléatoire et le figé ne font pas bon ménage.
Pour résoudre votre problème, il faut déterminé à l'avance le nombre de valeurs à trouver (variable selon le mois), et appliquer cela pour trouver un total de 800 (1000-200).
J'ai donc préparé manuellement un tableau qui, pour chaque valeur et en fonction du nombre de jours dans le mois, attribue une quantité de valeurs maximum disponible, et cela pour que la somme totale des valeurs multipliée par leur nombre respectif donne 800.
Lorsque vous cliquez sur le bouton "Générateur", la partie du tableau correspondant au mois sélectionné vient se coller dans la plage de cellules "H6:H20", puis commence à chercher une valeur de façon aléatoire, pour chaque valeur trouvée, la quantité dans la plage H indiquant le nombre de possibilité à trouver pour cette valeur est décrémentée de 1, et ainsi de suite pour jusqu'à la fin.
Si une valeur aléatoire est trouvée mais que sa quantité restante en "H" est égale à 0 (on a épuisé le nombre de valeurs disponibles pour cette valeur) alors on relance la fonction aléatoire pour en trouver une autre de disponible.
Une vue de la feuille
Le fichier
https://mon-partage.fr/f/ZchjS6ZV/
Ne soyez pas réticent aux macros, faites un minimum d'effort et suivez la procédure que j'ai donné plus haut (4 clics de souris pour que votre Excel puisse lire les macros).
Une fois que vous aurez fait cela, la seule chose que vous aurez à faire c'est d'appuyer sur le bouton "Générateur"
Cdlt
En plus de ce que viennent de dire Raymond PENTIER et ccm81 que je salue, ce que vous demandez est impossible à faire simplement. Vous voulez trouver des valeurs aléatoires qui viennent se cumuler à une valeur de départ (ici 200) pour arriver à une valeur de fin(ici 1000) mais en plus avec une nombre de cellules déterminées et de surcroit, variable en fonction du mois sélectionné. L'aléatoire et le figé ne font pas bon ménage.
Pour résoudre votre problème, il faut déterminé à l'avance le nombre de valeurs à trouver (variable selon le mois), et appliquer cela pour trouver un total de 800 (1000-200).
J'ai donc préparé manuellement un tableau qui, pour chaque valeur et en fonction du nombre de jours dans le mois, attribue une quantité de valeurs maximum disponible, et cela pour que la somme totale des valeurs multipliée par leur nombre respectif donne 800.
Lorsque vous cliquez sur le bouton "Générateur", la partie du tableau correspondant au mois sélectionné vient se coller dans la plage de cellules "H6:H20", puis commence à chercher une valeur de façon aléatoire, pour chaque valeur trouvée, la quantité dans la plage H indiquant le nombre de possibilité à trouver pour cette valeur est décrémentée de 1, et ainsi de suite pour jusqu'à la fin.
Si une valeur aléatoire est trouvée mais que sa quantité restante en "H" est égale à 0 (on a épuisé le nombre de valeurs disponibles pour cette valeur) alors on relance la fonction aléatoire pour en trouver une autre de disponible.
Une vue de la feuille
Le fichier
https://mon-partage.fr/f/ZchjS6ZV/
Ne soyez pas réticent aux macros, faites un minimum d'effort et suivez la procédure que j'ai donné plus haut (4 clics de souris pour que votre Excel puisse lire les macros).
Une fois que vous aurez fait cela, la seule chose que vous aurez à faire c'est d'appuyer sur le bouton "Générateur"
Cdlt
oscar199788
Messages postés
7
Date d'inscription
dimanche 30 août 2020
Statut
Membre
Dernière intervention
1 septembre 2020
1 sept. 2020 à 10:49
1 sept. 2020 à 10:49
Bonjour à tous et un grand merci pour votre aide.
Je vais télécharger tout cela et essayer de comprendre...
@Frenchie83 pour les macros j'ai accepté, ce n'est pas un manque d'effort de ma part, la procédure que tu a mis à disposition en vidéo je ne l'ai pas comprise...
La vidéo va trop vite pour moi, de plus je suis avec Excel 2003 qui a une présentation différente, bref j'ai pas bien capté, désolé.
D’après ce que tu écris tu as fais une simulation avec les différent mois.
Alors la je dis super top...
@ccm81 +++++ j'ai juste survolé et j'ai pus activé les macros, mon souci auparavant été que je ne savais pas quelle option choisir, la c'est clair avec les mêmes fenêtres que moi...
Cdt
Je vais télécharger tout cela et essayer de comprendre...
@Frenchie83 pour les macros j'ai accepté, ce n'est pas un manque d'effort de ma part, la procédure que tu a mis à disposition en vidéo je ne l'ai pas comprise...
La vidéo va trop vite pour moi, de plus je suis avec Excel 2003 qui a une présentation différente, bref j'ai pas bien capté, désolé.
D’après ce que tu écris tu as fais une simulation avec les différent mois.
Alors la je dis super top...
@ccm81 +++++ j'ai juste survolé et j'ai pus activé les macros, mon souci auparavant été que je ne savais pas quelle option choisir, la c'est clair avec les mêmes fenêtres que moi...
Cdt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
1 sept. 2020 à 12:19
1 sept. 2020 à 12:19
Essayez ceci:
Pour activer les macros sous excel 2003:
menu Excel -> Outils > Macros > Sécurité > cocher niveau sécurité moyen.
Si vous ne vous en sortez pas, faites une recherche sur le Net, il y a plein de tutos
Pour activer les macros sous excel 2003:
menu Excel -> Outils > Macros > Sécurité > cocher niveau sécurité moyen.
Si vous ne vous en sortez pas, faites une recherche sur le Net, il y a plein de tutos