Oui, mais c'est long.Peut-on savoir pour ce cas de figure combien y-a-t-il de combinaisons possibles ayant pour total 71 (dans cet exemple)
Non, y'en a trop., et afficher tous les cas dans le tableau?
Ca dépend. Si tu considères que 2346225261778251040 est beaucoup plus que 32 alors oui.Dans le fichier, j'avais indiqué 32 cas de figures potentielles, mais il doit y en avoir beaucoup plus, non?
C'est une idée.L'idée est de pouvoir afficher en colonnes toutes les combinaisons possibles compte tenu des données de base (nombre de lignes, min et max, somme des éléments dans la macro).
A cause du paragraphe 'Tableau nbre d’occurrences max autorisées pour chaque valeur possible' et de ses conséquences je crois. Faire un essai avec des données qui, ordonnées, vous ont déjà donnée un résultat. J'ajouterai que j'ai de gros doutes sur le bon fonctionnement si plusieurs lignes dans Param avaient le même maximum.Pourquoi doit-on integrer les categories par ordre decroissant?
CorrectQue signifie dans la feuille de resultat le nombre indique dans la derniere colonne? Est-ce le parametre NbComb qui va écrire à droite de chacune des lignes précédentes le nombre de combinaisons correspondant à ce schéma? Donc si on fait la somme de la colomne NbComb, on a le nombre de combinaisons total, correct?
Oui, une trentaine de secondes sur un vieux netbook. Dans le fichier que vous venez de transmettre les données sont incohérentes. Dans la cellule F4 (Catégories) il y avait une formule qui additionnait la colonne C (Occurrences). Elle a été remplacée par un 4 au lieu du 15 (7+3+2+3) attendu. Par catégorie j'entends donc la largeur d'un schéma (c.a.d le nombre de boutiques d'après vos explications).Avez-vous pu faire tourner la macro avec 20 categories, et un total de 71 boutiques? combien de temps cela prend il?
Pas d'erreurs repérées, j'ai fait tourner avec les données originelles (et APRES retour de la formule en F4) et j'obtiens les mêmes résultats (16696 schémas, 2754315976 combinaisons).j'ai tente de la modifier (resultat en piece jointe) pour pouvoir y ajouter le nom des catégories. Merci de m'indiquer si je n'ai pas detruit totalement la macro avec mes modifications...
Sub Schemas()
Dim w As Worksheet, p%(1 To 4), i%, c%, Tp%(), Ta%(), j%, Tb%(), r&, b As Boolean
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Set w = Worksheets("Param")
If ActiveSheet Is w Then Sheets.Add
'Parametres individuels
p(1) = w.Cells(2, 5) 'minmin
p(2) = w.Cells(3, 5) 'maxmax
p(3) = w.Cells(4, 5) 'nb de categories
p(4) = w.Cells(1, 5) 'cible
If Not (p(3) * p(1) <= p(4) And p(3) * p(2) >= p(4)) Then Exit Sub
'Parametres tableau
For i = 2 To w.Cells(Rows.Count, 1).End(xlUp).Row
c = c + 1
ReDim Preserve Tp(1 To 4, 1 To c)
Tp(1, c) = w.Cells(i, 1) 'minimum
Tp(2, c) = w.Cells(i, 2) 'maximum
Tp(3, c) = w.Cells(i, 3) 'occurences
Next i
Tp(4, 1) = Tp(3, 1) 'cumul des occurences
For i = 2 To c
Tp(4, i) = Tp(4, i - 1) + Tp(3, i)
Next i
c = 0
'Tableau nbre d'occurences max autorisées pour chaque valeur possible
ReDim Ta(p(1) To p(2))
For i = p(1) To p(2)
For j = 1 To UBound(Tp, 2)
If i >= Tp(1, j) And i <= Tp(2, j) Then
Ta(i) = Ta(i) + Tp(3, j)
End If
Next j
Next i
'Schema de dépârt
Tb = fCombinN1(p(2), p(3), p(4))
Do
If fFiltrage(Tp(), Tb(), Ta(), p(1), p(2)) Then
r = r + 1: b = False
For i = 1 To UBound(Tb)
Cells(r, i) = Tb(i)
If Tb(i) > 1 Then b = True
Next i
Cells(r, UBound(Tb) + 1) = NbComb(Tb, Tp())
If Not b Then Exit Sub
End If
Tb = fNextSchema(Tb(), p(4))
If Tb(1) = 0 Then Exit Do
Loop
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
La case Categ devrait contenir 95 et non 20 (Categ.=SOMME DES OCCURENCES).Dans le fichier que vous venez de transmettre les données sont incohérentes. Dans la cellule F4 (Catégories) il y avait une formule qui additionnait la colonne C (Occurrences). Elle a été remplacée par un 4 au lieu du 15 (7+3+2+3) attendu. Par catégorie j'entends donc la largeur d'un schéma (c.a.d le nombre de boutiques d'après vos explications).
Dans le fichier transmis je vois (un exemple parmi beaucoup) un 0-7-7 précédent un 0-7-5. -> Il fallait écrire une seule ligne 0-7-12!J'ajouterai que j'ai de gros doutes sur le bon fonctionnement si plusieurs lignes dans Param avaient le même maximum.
Je ne sais quoi répondre.Dans la feuille "Param", si l'on change les donnees de la colonne "Occurences" qu'est ce que cela entraine? Est ce que les valeurs dans la colonne occurence ont une influence sur le calcul final, ou sont elles juste editees a titre informatif?
Curieusement je n'ai pas ce souci. Voir premier paragraphe.Dans les calculs de combinaison, la macro propose pour chaque categorie des valeurs superieures a celles autorises. Peut on limiter les valeurs pour chaque categorie calculee en prenant en compte leur maximum (afin de minimiser le nombre de combinaisons a calculer)?
Par exemple dans la categorie C (maximum autorise 9), le calcul actuel prend en compte la valeur 10....
Bonjour
Je cherche en vain depuis un moment à connaitre l’ensemble des combinaisons possible de 7 chiffres qui peuvent être composé de 2,3,4,5,6 ou 7 éléments.
De plus leur combinaisons doit se faire par ordre croissant.
Par exemple une classe de 7 élèves.
Je souhaite les classer du plus petit au plus grand par groupe de 2 à 7 éléves
Par exemple 1-2-3-4-5-6-7
Je peux former :
1-2
1-2-3
1-2-3-4
…
1-2-3-4-5-6-7
1-3
1-3-4
...
Toute aide est la bienvenue !
Merci !!!