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