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 :

Problème pour générer des combinaisons [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème pour générer des combinaisons
    Bonjour à tous,

    j'ai un problème d'analyse combinatoire qui me semble complexe, je ne sais pas si c'est réalisable en VBA. J'espère pouvoir trouver de l'aide dans vos diverses expériences
    J'ai 4 catégories. Chaque catégorie a un nombre d'activités (que je connais). Je souhaite générer toutes les combinaisons d'activités possibles des 4 catégories.

    Par exemple si j'avais 2 catégories avec 2 activités dans chaque catégorie j'aimerais que cela me génère :
    00
    01
    02
    10
    11
    12
    20
    21
    22


    Jusque là tout va bien. Question code VBA on peut faire par exemple (pas parfait je sais, mais fonctionnel) :
    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
     
    Dim Nb_cat(4) As Integer
     
    'on entre le nombre d'activités dans chaque catégorie
    Nbact_cat(1) = 1
    Nbact_cat(2) = 2
    Nbact_cat(3) = 2
    Nbact_cat(4) = 3
     
    For cat1 = 0 To Nbact_cat(1)
        For cat2 = 0 To Nbact_cat(2)
            For cat3 = 0 To Nbact_cat(3)
                For cat4 = 0 To Nbact_cat(4)
                    ActiveCell.Value = cat1 & cat2 & cat3 & cat4
                    ActiveCell.Offset(1, 0).Select
                Next
            Next
        Next
    Next
    C'est là que mon problème intervient : Le nombre de catégories ET le nombre d'activités par catégories est ammené à changer. Il faut donc que le code s'adapte si j'ai 2 ou 10 catégories (or ici je suis bloqué à 4 catégories par mon codage!), et 1 ou 100 activités par catégorie. Le nombre d'activités par catégorie est gérable, mais je n'arrive pas à gérer un nombre de catégories changeant.
    Je n'arrive pas du tout à comprendre le nombre de boucles qu'il faudrait, mon raisonnement est arrivé à générer du code VBA en boucle ce qui serait impensable, bref, je suis un peu perdu...
    Avez vous des pistes pour m'aider?

    Merci beaucoup !

    Mootchoop

  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
    Bonjour,
    1)
    Je souhaite générer toutes les combinaisons d'activités
    est en contradiction avec ce que tu dis vouloir obtenir ..
    00
    01
    02
    10
    11
    12
    20
    21
    22
    où j'ai donné la même couleur aux combinaisons en doublons.

    2) Il est clair qu'à partir d'un certain nombre à traiter, ta feuille risque fort de ne pas être assez grande s'il ne s'agit pas de "combinaisons de catégories", mais, comme tu le fais par tes boucles, de tout autre chose (permutations ...)!.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    merci de ta réponse !

    1)
    Au sujet de l'emploi du terme "combinaison", j'ai ajouté l'exemple justement pour pouvoir expliquer clairement ce que je souhaite faire, et je ne connaissais pas la définition exacte de "combinaison" (savoir si les permutations sont inclues ou pas).

    2)
    Le temps de calcul importe peu (au pire il y aura 10 catégories). J'aimerais réussir à coder mon problème quelque soit ce temps.

    Aurais-tu une idée quant au principe à développer pour y arriver?

  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
    Mais tu n'as toujours rien précisé clairement (et surtout pas avec ton exemple ...)
    Il est nécessaire que tu le fasse, et complètement.

    Pour moi, par exemple, les combinaisons possibles de A, B , C et D, sans autres précisions, sont , en excluant Les singles A, B, C et D :
    AB, AC, AD, ABC, ABD, ABCD, ACD, ADB
    ===>> nécessité d'explimer clairement et précisément les tenants et aboutissants ....

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oups oui ok je comprend, c'est pas vraiment ça dans le sens où il n'y a ni single ni couples de 2 éléments si il y a 3 catégories, il y a à chaque fois un élément de chaque catégorie qui est représenté.

    Il s'agit de toutes les combinaisons des éléments des catégories, comprenant les permutations. Les combinaisons doivent se composer d'un élément de chaque catégorie.

    Par exemple si dans la cat 1 il y a 0 et 1 et dans la catégorie 2 il y a 0 1 et 2 ça fera :
    0 0
    0 1
    0 2
    1 0
    1 1
    1 2

    J'ai du mal à m'exprimer car le problème est plus complexe mais je simplifie (si on peut dire!) cette partie, qui est la plus complexe, pour y arriver. J'espère que c'est plus explicite maintenant

  6. #6
    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
    ce que tu exprimes maintenant est totalement différent tant de ce que tu exprimais au départ que de ce que faisais le code que tu montrais.
    Ce n'est toutefois toujours pas clair, car ta simplification à 2 "catégories" est un cas particulier qui peut occulter mille et un autres aspects.... (et tes explications demeurent donc bien floues...)
    Commence par expliquer le plus simple, donc (en oubiant même le contenu des "catégories") :
    Question 1 : si tu as 4 catégories, chacune des combinaisons de ces 4 catégories doit-elle être de 4 éléments (donc toutes les permutations) ou peut-elle être de 2 ou 3 catégories ?
    Une autre fois : à ce niveau (pour cette question) on ne se péoccupe pas encore du nombre des éléments contenus dans ces catégories ... (celà fera l'objet, pas à pas, d'autres questions, puisque tu ne parviens pas encore à un exposé clair et exhaustif).
    Et (s'il te plait) ne réponds à ce stade qu'à cette première question (pour ne pas embrouiller tout.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 13/03/2011, 20h14
  2. Problème (Permutation?) pour générer des combinaisons
    Par diendjao dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 08/10/2008, 10h25
  3. [XML word] problème pour créer des puces
    Par ratapapa dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/07/2005, 13h52
  4. Problème pour Télécharger des fichiers
    Par joce3000 dans le forum C++Builder
    Réponses: 8
    Dernier message: 21/01/2005, 10h30
  5. problème pour faire des blocs
    Par tinkye_winkye dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 04/01/2005, 14h13

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