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 :

[VBA-E] Générer des combinaisons dans Excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut [VBA-E] Générer des combinaisons dans Excel
    Bonjour,

    je suis novice dans VB et je souhaiterais générer toutes les combinaisons possibles avec 9 mots sachant que:
    - l'ordre n'est pas important,
    - la combinaison peut avoir de 1 à 9 mots.

    Quelqu'un pourrait-il m'aiguiller dans ma démarche?

    Je vous remercie.

    Cdt

    Sorel

  2. #2
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Je me trompe dans mes calculs ou tu en auras plus de 300000 ? (362880)
    Tu veux en faire quoi ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ouskel'n'or
    Je me trompe dans mes calculs ou tu en auras plus de 300000 ? (362880)
    Tu veux en faire quoi ?
    Et bien je ne sais pas exactement le résultat mais je pensais que cela faisait moins...en plus d'être nul en VB je le suis en maths ;-)

    Je veux générer cette liste pour ensuite l'importer dans SAP.

    Merci bien

  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
    Points : 15 546
    Points
    15 546
    Par défaut
    Je suis nul en SAP... C'est quoi ?

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ouskel'n'or
    Je suis nul en SAP... C'est quoi ?
    C'est un ERP ou Progiciel de Gestion Intégré

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    je suis nul en maths, mais
    362880 = 9! (factorielle de 9)

    c'est toutes les permutations de neufs mots !

    Mais ce n'est pas ce qu'on cherche puisque l'ordre n'est pas important, ça fait moins de combinaisons, mais ça en fait quand meme un paquet.

    C(9,9) = 9! / (9! * (9 - 9) !)
    soit = 9! / (9! * 1) = 1

    en généralisant, ça donnerait (si j'ai bien compris)
    C(9,x) = 9! / (x! * (9 - x) !)
    pour x=1->9

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    phrases de 1 mot(s)		9
    phrases de 2 mot(s)		36
    phrases de 3 mot(s)		84
    phrases de 4 mot(s)		126
    phrases de 5 mot(s)		126
    phrases de 6 mot(s)		84
    phrases de 7 mot(s)		36
    phrases de 8 mot(s)		9
    phrases de 9 mot(s)		1
     
    Total		511

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par cafeine
    Hello,

    je suis nul en maths, mais
    362880 = 9! (factorielle de 9)

    c'est toutes les permutations de neufs mots !

    Mais ce n'est pas ce qu'on cherche puisque l'ordre n'est pas important, ça fait moins de combinaisons, mais ça en fait quand meme un paquet.

    C(9,9) = 9! / (9! * (9 - 9) !)
    soit = 9! / (9! * 1) = 1

    en généralisant, ça donnerait (si j'ai bien compris)
    C(9,x) = 9! / (x! * (9 - x) !)
    pour x=1->9

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    phrases de 1 mot(s)		9
    phrases de 2 mot(s)		36
    phrases de 3 mot(s)		84
    phrases de 4 mot(s)		126
    phrases de 5 mot(s)		126
    phrases de 6 mot(s)		84
    phrases de 7 mot(s)		36
    phrases de 8 mot(s)		9
    phrases de 9 mot(s)		1
     
    Total		511
    Merci. mon besoin est maintenant de 8 mots mais ça ne change pas l'énoncé. Je crois que le nbre de possibilité est environ de 40000 (8! c'est ça?).

    Il ne me reste plus qu'à trouver le code... avis aux amateurs ;-)

    Merci bcp

    Sorel

  8. #8
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    Un truc qu´il faudrait préciser, c´est s´il peut y avoir répétition ou pas.
    en effet:
    • le calcul du nombre de résultats possibles via le C(n,p) ne vaut - de mémoire - que pour des combinaisons d´éléments distincts

    • cela changera pas mal l´approche à faire pour coder la chose

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Si c'est 8 mots avec des phrases de 1 à 8 mots sans répétition ni notion d'ordre c'est : 255 combinaisons



    Citation Envoyé par JSOREL
    Merci. mon besoin est maintenant de 8 mots mais ça ne change pas l'énoncé. Je crois que le nbre de possibilité est environ de 40000 (8! c'est ça?).

    Il ne me reste plus qu'à trouver le code... avis aux amateurs ;-)

    Merci bcp

    Sorel

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par cafeine
    Si c'est 8 mots avec des phrases de 1 à 8 mots sans répétition ni notion d'ordre c'est : 255 combinaisons
    Merci. Pourrais-tu me donner la formule stp? Merci bcp.

    Sinon pas de développeur fou qui s'ennuie cet AM et qui pourrait m'aider à coder cela en VB?

    Merci bcp

    Sorel

  11. #11
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    C'est la formule du Cnp : n! / (p! * (n - p)!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		Combinaisons
    Nb Sous-éléments	1	8
    	2	28
    	3	56
    	4	70
    	5	56
    	6	28
    	7	8
    	8	1
     
    		255

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par cafeine
    C'est la formule du Cnp : n! / (p! * (n - p)!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		Combinaisons
    Nb Sous-éléments	1	8
    	2	28
    	3	56
    	4	70
    	5	56
    	6	28
    	7	8
    	8	1
     
    		255
    Merci pour la formule, heureusement qu'il y en a qui ont pas fait bac L comme moi ;-)

    Sinon qu'est ce que ce code que tu me donnes? Sais-tu les faire en VB stp?

    Je te remercie.

    Sorel

  13. #13
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par cafeine
    C'est la formule du Cnp : n! / (p! * (n - p)!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		Combinaisons
    Nb Sous-éléments	1	8
    	2	28
    	3	56
    	4	70
    	5	56
    	6	28
    	7	8
    	8	1
     
    		255
    Citation Envoyé par JSOREL
    toutes les combinaisons possibles avec 9 mots
    - l'ordre n'est pas important,
    J'avais effectivement compris "dans n'importe quel ordre"...

Discussions similaires

  1. Fonctions VBA renvoyant des tableaux dans Excel
    Par phil_75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/08/2006, 00h19
  2. [VBA-E] Lire des valeurs dans un fichier excel
    Par nicobox dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/05/2006, 15h40
  3. [VBA-E]Insérer des autotext dans Word à partir d'excel
    Par noordman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2006, 15h34
  4. [VBA-E]Transfere des données d'Excel dans une table Access
    Par flo83 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/04/2006, 09h22
  5. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18

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