IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

excel et les probabilités


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Par défaut excel et les probabilités
    Bonjour,

    je suis arrivé au bout de mes compétences en mathématiques/probabilités, c'est pourquoi je laisse ce message.

    Adepte des paris en ligne, j'essaie de créer une feuille excel qui, une fois tous les matchs renseignés, me calcule tous les combinés de 3 matchs possibles sans doublons.

    Je m'explique:
    je débute en copiant/collant ds excel le nom des matchs qui m'intéressent.

    En fonction du nbre de matchs(environ 5 ou 6), je calcule le nbre de combinés possible - Ex: 10 combinés pour 5 matchs.

    A partir de là, je n'arrive pas à trouver une formule qui me combine tous les matchs afin de constituer tous les triplés.

    Quelqu'un aurait-il une idée ?

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    c'est un calcul assez basique de maths :

    un arrangement (ou l'ordre a une importance) de p parmi n :
    une combinaison (ou l'ordre n'a pas d'importance) de p parmi n :

  3. #3
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Par défaut
    en fait , je bloque sur le fait d'organiser tous les combinés.
    C'est à dire de mettre tel match dans les combinés x,y,z... puis pareil pour le match2 et etc.... pour avoir la liste des 10 (par exemple) combinés et les matchs qu'ils contiennent.

    Ex:

    Combiné 1: Match1 + Match 3 + Match 4
    Combiné 2: Match4 + Match 5 + Match 2
    Combiné 3: Match2 + Match 3 + Match 1
    Combiné 4: Match1 + Match 3 + Match 5
    ....

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Comprends pas ! Oui, parce que je ne vois pas comment tu obtiens 10 combinaisons de trois pour 5 matchs.
    Ou alors tu as mal expliqué... ou alors tu as mal calculé

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    mmmm

    tu veux afficher toutes les combinaisons possibles de 3 matchs?

    on suppose que tes matchs sont en colonne 1. les combinaisons seront en 2,3,4


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    apres déclaration de toutes les variable
    
    ligne_enregistrement=1
    
    for i =1 to nb_de_matchs
    
      for j=1 to nb_de_match
    
         if cells(j,1)<>cells(i,1) then
    
            for k=1 to nb_de_match
    
               if cells(k,1)<>cells(j,1) and cells(k,1)<>cells(i,1) then
    
                  cells(ligne_enregistrement,2)=cells(i,1)
                  cells(ligne_enregistrement,3)=cells(j,1)
                  cells(ligne_enregistrement,4)=cells(k,1)
                  ligne_enregistrement=ligne_enregistrement+1
    
               end if
    
           next k
    
         end if
    
      next j
    
    next i
    et toutes tes possibilités seront donnés

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par sk8bcn
    mmmm
    Citation Envoyé par rouls
    En fonction du nbre de matchs(environ 5 ou 6), je calcule le nbre de combinés possible - Ex: 10 combinés pour 5 matchs.

  7. #7
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Par défaut
    Je n'avais pas précisé : il ne faut pas que j'affiche des doublons .
    Ex: combiné 1 2 3 = combiné 2 1 3

    C'est pour ça que je dois resortir 10 combinaisons de 3 pour 5 matchs (si je ne me suis pas trompé ) :

    Match 1
    Match 2
    Match 3
    Match 4
    Match 5

    doit sortir 10 combinés :

    123
    124
    125
    134
    135
    145
    234
    235
    245
    345

  8. #8
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    le nombre de combinaison t'es donné par ce que je t'ai mis plus haut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C = 5! / p! (n-p)! = 5! / 3! (5-3)! = 5x4x3x2x1 / 3x2x1 (2x1) = 120/12 = 10
    donc sur le nombre, tu ne t'es pas trompé

    Quant à écrire les différentes combinaisons, c'est autre chose, et je ne vois pas beaucoup d'autre solution que les boucles imbriquées

    A défaut de solution toute faite, tu auras fait une petite révision de maths

  9. #9
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Par défaut
    merci pour la formule mais à défaut de l'avoir je m'étais fait ma formule artisanale pour trouver le nbre de combinés possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    While (Cells(i, 1) <> "")
        ReDim Preserve match(i)
        match(i) = Cells(i, 1).Text
        i = i + 1
    Wend
    
    nb_matchs = i - 1
    
    For j = 1 To nb_matchs - 2
        nb_apparitions = nb_apparitions + j
        nb_combinés = nb_combinés + nb_apparitions
    Next j
    
    MsgBox "Il y a " & nb_matchs & " matchs." & Chr(13) & "Chaque match apparait " & nb_apparitions & " fois " & Chr(13) & "Il y a " & nb_combinés & " combinés possibles."

    Mais maintenant je ne vois pas comment organiser les combinés....ss doublons

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    enr=1
     
    for i=1 to 3
      for j= i+1 to 4
        for k=j+1 to 5
     
            cells(enr,2)=cells(i,1)
            cells(enr,3)=cells(j,1)
            cells(enr,4)=cells(k,1)
            enr =enr+1
         next k
       next j
    next i

  11. #11
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Par défaut
    Bonjour

    J'ai testé ces 2 macros et ça marche!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim a(20) As Integer, i1 As Integer, lig As Integer, v1 As String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub Triple()
     
    lig = 1: Columns("A:A").ClearContents
    n1 = InputBox("Nombre de matchs")
    For i1 = 1 To 3: a(i1) = i1: Next
    Affiche
    Do Until a(1) = n1 - 2
        Do Until a(2) = n1 - 1
            Do Until a(3) = n1
                a(3) = a(3) + 1
                Affiche
            Loop
            a(2) = a(2) + 1: a(3) = a(2) + 1
            Affiche
        Loop
        a(1) = a(1) + 1: a(2) = a(1) + 1: a(3) = a(2) + 1
        Affiche
    Loop
    Range("C1").Value = Str(n1) & " matchs"
    Range("D1").Value = Str(lig - 1) & " combinaisons"
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Affiche()
     
    v1 = Str(a(1)) & Str(a(2)) & Str(a(3))
    Cells(lig, 1).Value = v1
    lig = lig + 1
     
    End Sub
    Pense à mettre les déclarations en tête de la procédure.
    Les 2 macros "Triple" et "Affiche" doivent se trouver dans la même procédure.
    On inscrit le nombre de matchs dans l'inputbox, et on obtient le nombre de combinaisons, et le détail des combinés dans la colonne A1.

    Cordialement

  12. #12
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Par défaut
    Citation Envoyé par sk8bcn
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    enr=1
     
    for i=1 to 3
      for j= i+1 to 4
        for k=j+1 to 5
     
            cells(enr,2)=cells(i,1)
            cells(enr,3)=cells(j,1)
            cells(enr,4)=cells(k,1)
            enr =enr+1
         next k
       next j
    next i
    Super sk8bcn, ca me trie tous les matchs et c'est nickel.

    Merci encore à tous et bonne continuation...

  13. #13
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Un petit clic sur , si ça marche...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Import CSV sous Excel, garder les 0 inutile
    Par ePoX dans le forum Excel
    Réponses: 4
    Dernier message: 26/01/2009, 16h25
  2. [Excel] Actualiser les données d'un graphique
    Par fscli dans le forum Excel
    Réponses: 5
    Dernier message: 08/05/2006, 16h50
  3. Excel : "personnaliser" les graphs
    Par Sylvain11 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 27/04/2006, 15h58
  4. [VBA][Excel]Récupérer les valeurs du graphe...
    Par Samourai dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2006, 10h51
  5. [EXCEL]Modifier les marges d'une page dans Excel
    Par ms91fr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2004, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo