Faire un calcul de 4 numero ou 5 numero

1

Bonjour a tous

voila je voudrait rentrer des numéros

dans un ordre que j'aurai choisi

exemple:le 16,2,6,9,13,3,7,15 et 11

et ensuite,si je veut 10 combinaisons de 4 numéros je clic sur combi4.

ou bien sur combi5.pour m'afficher 10 combinaison de 5 numéro.

Mais voila je ne sais pas, par ou commencer car je ne suis que débutant.

et je ne comprend rien a exel.

J'ai essayé d'être aussi clair que possible pour vous poser cette question 

pouvez vous m'aidez s'il vous plait.

a résoudre ce problème.

Merci d'avance pour vos réponse 


    Posté le 29 janvier 2023, 15:26
    Répondre
    0

    Bonjour sandy.qt,

    j'avais vu ton sujet précédent "calcul automatique", mais à ce moment-là,
    je n'avais pas trouvé comment faire ; maintenant, j'ai trouvé une solution.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    je te propose ce fichier Excel : https://www.cjoint.com/c/MAEbadRWJp0

    * il y a 10 nombres sur fond jaune clair ; tu pourras les modifier si besoin.

    * clic / bouton "Combi4" ➯ 10 tirages de 4 nombres (sur fond vert clair)

    * clic / bouton "Combi5" ➯ 10 tirages de 5 nombres (sur fond bleu clair)

    * pour un tirage donné (de 4 ou 5 nombres), tous les nombres sont différents,
    et c'est bien des nombres de la liste sur fond jaune clair.

    * les 10 tirages sur fond vert clair sont forcément différents : il ne peut pas
    y avoir 2 tirages identiques ; pour les 10 tirages sur fond bleu clair : idem.

    * pour voir d'autres tirages, clique de nouveau sur l'un des 2 boutons.

    * la feuille est protégée, mais c'est une protection simple sans mot de passe ;
    il n'y a aucune formule, tout est fait par VBA ➯ inutile d'enlever la protection ;
    cette protection est utile pour que l'utilisateur puisse modifier uniquement les
    10 nombres sur fond jaune clair et rien d'autre.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    attention : quand tu saisis les 10 nombres de la liste sur fond jaune clair,
    tous ces nombres sont censés être différents (il n'y a pas de contrôle) ;
    si par exemple tu saisis 10 nombres identiques, ça bloquera la macro car
    elle ne pourra pas trouver un tirage de 4 ou 5 nombres différents, encore
    moins 10 tirages différents ➯ ça entre dans une boucle sans fin !  :(

    si tu veux ajouter un contrôle pour éviter ce problème, je te laisse le faire.  ;)
    ce n'est pas difficile, mais là, j'ai préféré faire comme si l'utilisateur ne va
    pas faire n'importe quoi !  ;)

    si ça entrait dans une boucle sans fin : faire Ctrl Pause pour arrêter le code VBA
    (c'est l'équivalent de Ctrl Break) ➯ message "Exécution interrompue" ; cliquer
    sur le bouton "Fin" ; remplacer les nombres identiques par d'autres nombres ;
    faire de nouveaux tirages en cliquant sur l'un des deux boutons.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    code VBA de Module1 :

    Option Explicit

    Private Sub Tirages(n As Byte)
      Dim T0(9, 1) As Byte, T1(10, 4) As Byte, s$, c As Byte, v As Byte
      Dim t As Byte, k As Byte, r As Byte, i As Byte, j As Byte
      For i = 0 To 9: T0(i, 0) = Cells(i + 3, 3): Next i
      c = 5 - 2 * (n = 5): n = n - 1: Randomize
      Application.ScreenUpdating = 0: ActiveSheet.Unprotect
      Do
    1   For i = 0 To 9: T0(i, 1) = 0: Next i
        For i = 0 To n
          Do: r = Int(10 * Rnd): Loop Until T0(r, 1) = 0
          T1(0, i) = T0(r, 0): T0(r, 1) = 1
        Next i
        For r = 1 To k
          t = 0
          For i = 0 To n
            v = T1(0, i)
            For j = 0 To n
              If T1(r, j) = v Then t = t + 1: Exit For
            Next j
          Next i
          If t = n + 1 Then GoTo 1
        Next r
        k = k + 1: s = ""
        For i = 0 To n
          T1(k, i) = T1(0, i): s = s & T1(0, i) & "  "
        Next i
        Cells(k + 2, c) = Left$(s, Len(s) - 2)
      Loop Until k = 10
      ActiveSheet.Protect
    End Sub

    Sub Combi4()
      Tirages 4
    End Sub

    Sub Combi5()
      Tirages 5
    End Sub

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    si besoin, tu peux demander une adaptation.
    à te lire pour avoir ton avis.  :)

    rhodo

    rhodo Posté le 30 janvier 2023, 02:37
    par rhodo

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :