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 :

Générer toutes les combinaisons d'une suite


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut Générer toutes les combinaisons d'une suite
    Bonjour!

    Je suis bloqué pour la réalisation d'une macro.

    J'aimerai pouvoir générer toutes les combinaisons possibles d'une suite.

    Exemple :
    Si on a la suite A-B, le résultat est :
    A-B / B-A
    Si on a la suite A-B-C, le résultat est :
    A-B-C / B-C-A / C-B-A / C-A-B / A-C-B / B-A-C

    Je ne suis pas très calé en maths, mais je crois que le nombre de possibilités est une factorielle : Nbr_arguments!

    J'ai fait une macro qui fonctionne jusqu'à 4 éléments. Au dela de 4, cela ne fonctionne plus (toutes les possibilités ne sont pas présentées). Je trouve vraiment que cet algorithme est compliqué et je crois que je ne suis pas en mesure de l'inventer. Avez-vous un algorithme qui effectue ce genre d'opérations?

    Je vous remercie de vous être penchés quelques secondes sur mon message et je vous remercie d'avance si vous avez des choses à me proposer.

    Bon courage! ;-)

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Quel est le nombre de tes élément A,B,C...N ?
    jusqu'à 7, c'est raisonnable et il y a plusieurs manières de le faire ...
    Au delà : c'est le ramage assuré...
    Si >= 10 ==>> dans quoi comptes-tu afficher les résultats ?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut
    Je souhaiterais que N soit variable et il peut éventuellement dépasser 10. Ce n'est pas grave si le PC rame... Le calcul peut même durer une heure s'il faut.

    Dans ma macro, les résultats sont stockés dans un tableau.
    Pour l'exemple de la suite A-B-C le tableau contient :
    A-B-C-B-C-A-C-B-A-C-A-B-A-C-B-B-A-C (exemple)
    et je sais que je dois découper ce tableau par tranches de 3 (par N...).

    Donc c'est sûr, pour afficher ça dans une feuille quand N=10, ce n'est pas évident. Mais l'affichage n'est pas trop mon souci. Je souhaite surtout être capable de générer toutes les combinaisons possibles pour affectuer une analyse par la suite. L'affichage des combinaisons ne serra pas fait.

    Merci de ta réponse.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bon...

    En frappant simplement, sur Google,
    permutations VB6
    ou encore
    seyev permutations vb6

    tu vas trouver des quantités de code en traitant ...

    L'un des plus rapides est dans ce lien :

    http://www.codeguru.com/vb/gen/vb_mi...cle.php/c5607/

    dis-toi toutefois que la vitesse d'exécution diminue considérablement (en échelle logarithmique) lorsque l'on dépasse 8 éléments. Elle devient carrément insuportable au delà de 10...

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

Discussions similaires

  1. Générer toutes les combinaisons possibles
    Par collosus dans le forum Langage
    Réponses: 1
    Dernier message: 24/06/2013, 13h54
  2. Réponses: 8
    Dernier message: 07/06/2013, 11h42
  3. Réponses: 0
    Dernier message: 04/02/2013, 13h03
  4. générer toutes les dates d'une année
    Par docky dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/07/2008, 16h45
  5. Réponses: 16
    Dernier message: 20/10/2006, 16h31

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