job75
XLDnaute Barbatruc
Bonjour à tous,
J'ai 4 chiffres x1 x2 x3 x4 chacun pouvant prendre une valeur de 1 à 9.
Je cherche à obtenir un nombre constitué de ces 4 chiffres classés par ordre croissant.
J'ai écrit cette fonction en VBA en étudiant toutes les combinaisons possibles, mais c'est une solution bête et guère applicable s'il y a plus de 4 chiffres :
Quelqu'un a-t-il une idée pour une autre solution ?
Merci d'avance.
A+
J'ai 4 chiffres x1 x2 x3 x4 chacun pouvant prendre une valeur de 1 à 9.
Je cherche à obtenir un nombre constitué de ces 4 chiffres classés par ordre croissant.
J'ai écrit cette fonction en VBA en étudiant toutes les combinaisons possibles, mais c'est une solution bête et guère applicable s'il y a plus de 4 chiffres :
Code:
Function classe(x1, x2, x3, x4)
y1 = 1 * (x1 & x2 & x3 & x4)
y2 = 1 * (x1 & x2 & x4 & x3)
y3 = 1 * (x1 & x3 & x2 & x4)
y4 = 1 * (x1 & x3 & x4 & x2)
y5 = 1 * (x1 & x4 & x2 & x3)
y6 = 1 * (x1 & x4 & x3 & x2)
y7 = 1 * (x2 & x1 & x3 & x4)
y8 = 1 * (x2 & x1 & x4 & x3)
y9 = 1 * (x2 & x3 & x1 & x4)
y10 = 1 * (x2 & x3 & x4 & x1)
y11 = 1 * (x2 & x4 & x1 & x3)
y12 = 1 * (x2 & x4 & x3 & x1)
y13 = 1 * (x3 & x1 & x2 & x4)
y14 = 1 * (x3 & x1 & x4 & x2)
y15 = 1 * (x3 & x2 & x1 & x4)
y16 = 1 * (x3 & x2 & x4 & x1)
y17 = 1 * (x3 & x4 & x1 & x2)
y18 = 1 * (x3 & x4 & x2 & x1)
y19 = 1 * (x4 & x1 & x2 & x3)
y20 = 1 * (x4 & x1 & x3 & x2)
y21 = 1 * (x4 & x2 & x1 & x3)
y22 = 1 * (x4 & x2 & x3 & x1)
y23 = 1 * (x4 & x3 & x1 & x2)
y24 = 1 * (x4 & x3 & x2 & x1)
classe = Application.Min(y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14, y15, y16, y17, y18, y19, y20, y21, y22, y23, y24)
End Function
Quelqu'un a-t-il une idée pour une autre solution ?
Merci d'avance.
A+