XL 2016 Enlever la valeur minimum dans plusieurs nombres randomisé VBA

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 !

Deadrak

XLDnaute Nouveau
Hello tout le monde o/.

Voilà ma petite colle du jour ^^.

Voila, je crée une fiche de personnage pour un JDR papier, je voudrais tirer 4 dés à 6 faces et retirer la valeur la plus petite.

J'ai bien cette fonction qui me permet de tirer aléatoirement des chiffres:

de1 = Int((6 * Rnd) + 1)
de2 = Int((6 * Rnd) + 1)
de3= Int((6 * Rnd) + 1)
de4= Int((6 * Rnd) + 1)

mais voilà où je bute,

Je voudrais qu'un msgbox m'affiche le totale de ces quatre opérations mais en ayant retiré la plus petite valeur. Alors, j'ai mis les résultats des tirages dans des dim "de*" mais je ne trouve pas la méthode pour lui demander d'ignorer la plus petite valeur. Sans compter que j'ai peur de ce qu'il pourrait faire si la plus petite valeur soit identique à un autre dé. Si nous avons "10" "14" "9" "9" comment lui dire de garder un "9" et de supprimer l'autre?

Je vous remercie d'avance pour le temps que vous m'accorderez.

Passez à tous une bonne soirée ^^ (Et passez de bonnes fêtes 😉 )

Deadrak.
 
Solution
Bonsoir,

Essayez ce code :
VB:
Sub Test()
Dim de1, de2, de3, de4, somme

   de1 = 1 + Int(6 * Rnd)
   de2 = 1 + Int(6 * Rnd)
   de3 = 1 + Int(6 * Rnd)
   de4 = 1 + Int(6 * Rnd)
   somme = de1 + de2 + de3 + de4 - Application.Min(Array(de1, de2, de3, de4))
   MsgBox "Somme = " & somme & " pour " & de1 & ", " & de2 & ", " & de3 & ", " & de4
End Sub
Bonsoir,

Essayez ce code :
VB:
Sub Test()
Dim de1, de2, de3, de4, somme

   de1 = 1 + Int(6 * Rnd)
   de2 = 1 + Int(6 * Rnd)
   de3 = 1 + Int(6 * Rnd)
   de4 = 1 + Int(6 * Rnd)
   somme = de1 + de2 + de3 + de4 - Application.Min(Array(de1, de2, de3, de4))
   MsgBox "Somme = " & somme & " pour " & de1 & ", " & de2 & ", " & de3 & ", " & de4
End Sub
 
Bonsoir,

Essayez ce code :
VB:
Sub Test()
Dim de1, de2, de3, de4, somme

   de1 = 1 + Int(6 * Rnd)
   de2 = 1 + Int(6 * Rnd)
   de3 = 1 + Int(6 * Rnd)
   de4 = 1 + Int(6 * Rnd)
   somme = de1 + de2 + de3 + de4 - Application.Min(Array(de1, de2, de3, de4))
   MsgBox "Somme = " & somme & " pour " & de1 & ", " & de2 & ", " & de3 & ", " & de4
End Sub
Merci beaucoup pour cette réponse rapide! Je ne connaissais pas "Array", elle était là la solution ahah.

Un grand merci à toi!!
 
- 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
Retour