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) :
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.
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
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
Partager