Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Code VBA avec plusieurs alea, je m'y perds...

  • Initiateur de la discussion Initiateur de la discussion jeanjacques
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jeanjacques

Guest
Bonjour ou Bonsoir, c'est selon ou vous vivez...

Pouvez-vous m'aider à écrire un code contenant des alea (dictionary?) pour faire un contrôle sur les 4 valeurs donnant un résultat optimal?

Le principe est expliqué dans le fichier joint.

Merci de votre aide, vous êtes trop forts!

Jean Jacques.
 

Pièces jointes

Re : Code VBA avec plusieurs alea, je m'y perds...

Bonjour jeanjacques,

On aimerait bien connaître les formules en colonnes F et Q:T (SOMME et NB.SI ?).

Comme cela on pourra tester en connaissance de cause.

A+
 
Re : Code VBA avec plusieurs alea, je m'y perds...

Bonsoir Job,

...décidement tu es mon sauveur VBA...(je te remercie pour le précédent fichier des 5 colonnes et je vais t'envoyer une solution pour ton info)

Pour les formules, aucune importance, NB.SI > à une valeur ira très bien...et une somme en F5

Merci et bonne soirée
 
Re : Code VBA avec plusieurs alea, je m'y perds...

Re,

Voyez le fichier joint et cette macro :

Code:
Sub Tirages()
Dim dur, ntirage&, d As Object, n&, t1(), t2(), i&, a, j%, maxi&, mem1, mem2
dur = Timer
ntirage = 1000 'nombre de tirages, modifiable
Set d = CreateObject("Scripting.Dictionary")
Randomize
Application.ScreenUpdating = False
For n = 1 To ntirage
  '---tableau t1---
  ReDim t1(1 To 4)
  d.RemoveAll
  t1(1) = Int(1 + 5 * Rnd): d(t1(1)) = ""
1 t1(2) = Int(1 + 8 * Rnd)
  If d.exists(t1(2)) Then GoTo 1 Else d(t1(2)) = ""
2 t1(3) = Int(1 + 10 * Rnd)
  If d.exists(t1(3)) Then GoTo 2 Else d(t1(3)) = ""
3 t1(4) = Int(5 + 11 * Rnd)
  If d.exists(t1(4)) Then GoTo 3
  '---tableau t2---
  ReDim t2(1 To 25, 1 To 10)
  For i = 1 To 25
    d.RemoveAll
    While d.Count < 10: d(Int(1 + 70 * Rnd)) = "": Wend
    a = d.keys
    For j = 1 To 10
      t2(i, j) = a(j - 1)
  Next j, i
  '---restitution---
  [Q4].Resize(, 4) = t1
  [G6].Resize(25, 10) = t2
  If [F5] > maxi Then maxi = [F5]: mem1 = t1: mem2 = t2
Next n
[Q4].Resize(, 4) = mem1
[G6].Resize(25, 10) = mem2
Application.ScreenUpdating = True
MsgBox "Durée " & Format(Timer - dur, "0.00 \s")
End Sub
Record à battre en F5 : 29.

Edit : fichier (2) avec 30.

A+
 

Pièces jointes

Dernière édition:
Re : Code VBA avec plusieurs alea, je m'y perds...

Bonjour,

J'étais en déplacement, je vais regarder cette macro (et tester) ce we.

Merci Job et bonne journée.
 
Re : Code VBA avec plusieurs alea, je m'y perds...

Bonjour,

J'étais en déplacement, je vais regarder cette macro (et tester) ce we.

Merci Job et bonne journée.
 
Re : Code VBA avec plusieurs alea, je m'y perds...

Bonsour®
ce que j'ai compris des explications :


le tirage des 4 nombres (1 à 15) est semble-t-il entièrement déconnecté du tirages des nombres 1 à 70...
seules les formules en F, Q, R, S, T permettent de d'établir un "lien ?" avec les contraintes (impact des nombres >15 ???)
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

J
Réponses
2
Affichages
2 K
J
P
  • Question Question
Réponses
1
Affichages
2 K
Patrosso
P
V
Réponses
5
Affichages
3 K
Vero2782
V
S
Réponses
13
Affichages
3 K
solgti
S
L
Réponses
5
Affichages
2 K
lumiexcel
L
T
Réponses
6
Affichages
4 K
Totodelsol
T
P
Réponses
18
Affichages
4 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…