Bonjour à tous,
je cherche à faire un algorithme qui me produise toutes les combinaisons
d'un groupe d'éléments.

Par exemple si j'ai 1,2,3 et 4
Je voudrais obtenir :
1
2
3
4
1.2
1.3
1.4
2.3
2.4
3.4
1.2.3
1.2.4
2.3.4
1.2.3.4

(1.2 et 2.1 sont,pour moi, la même chose et ne m'interesse pas)

J'ai donc écris ceci:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Dim NombreClient As Integer
Dim Client(100) As Integer
 
NombreClient = 5
 
For i = 1 To NombreClient
    Client(i) = i
Next
 
Open App.Path & "\Resultat.txt" For Output As #1
 
Message = ""
Compteur = 0
 
For i = 1 To NombreClient
    Message = Message & Client(i) & vbCrLf
    Compteur = Compteur + 1
 
    For b = i + 1 To NombreClient
        Message = Message & Client(i) & Client(b) & vbCrLf
        Compteur = Compteur + 1
        For c = b + 1 To NombreClient
            Message = Message & Client(i) & Client(b) & Client(c) & vbCrLf
            Compteur = Compteur + 1
        Next
    Next
Next
 
Print #1, Message
 
Close #1
 
MsgBox Compteur & " combinaisons !!" & vbCrLf & vbCrLf & Message
========================================================
ceci fonctionne sauf que je ne peux utiliser Client(i), Client(b) etc...,
car il faut que ce bout
de code soit en relatif, sinon si j'ai 3 clients je n'aurai pas le même code
que si j'en ai 4, etc....

Si je ne vous semble pas clair, je peux expliquer plus.
Merci d'avance,

Dany

[ Edité par ridan ] Veuillez utiliser les balises CODE