Combinaisons de 35 numéros 3 à 3 !

claude43

XLDnaute Junior
Bonjour le Forum,

En A1:A35, j'ai 35 numéros à combiner 3 à 3.
Pour obtenir la première série de combinaisons en recopiant vers le bas, j'applique la formule =$A$1&-A2&-A3
A la suite, pour enchainer sur les combinaisons suivantes du type 2-3-4, 2-3-5, etc. Je sais pas faire !
En combinant 35 numéros de 1 à 35 de 3 à 3 cela donne 6 545 combinaisons de 3.
Comment enchainer les formules pour obtenir le bon résultat ?

J'ai joint une petite présentation.

Merci de m'aider

Claude
 

Pièces jointes

  • upload_2018-6-22_17-4-11.png
    upload_2018-6-22_17-4-11.png
    5.1 KB · Affichages: 96
  • combs3a3.zip
    3.2 KB · Affichages: 47

Victor21

XLDnaute Barbatruc
Bonjour claude43.

Il existe, ici et sur Internet, une foultitude de solutions pour sortir ces 6545 combinaisons.
Mais avez-vous besoin de toutes ces combinaisons ?
A raison d'une combinaison par seconde, il vous faudra 1h50 pour toutes les lire (à condition que votre attention ne se relâche pas.
Dites-nous plutôt ce que vous voulez en faire, et nous pourrons peut-être vous aiguiller sur une solution plus utilisable.
 

claude43

XLDnaute Junior
Bonjour Victor21,

Merci de vous intéresser à mon sujet.
Je fais des analyses personnelles en profondeur avec un logiciel très performant.
J'ai besoin de savoir s'il existe une formule excel plus adaptée que la mienne pour éditer ces 6545 combinaisons.
Oui il me faut la totalité de ces combinaisons.

Avec tous mes remerciements.

Claude
 

job75

XLDnaute Barbatruc
Bonsoir claude43, Patrick,

C'est en effet un sujet rabâché :
Code:
Sub Combinaisons_3a3()
Dim t, ub&, a$(), i&, j&, k&, n&
t = [A1:A35] 'à adapter
ub = UBound(t)
ReDim a(1 To Application.Combin(UBound(t), 3), 1 To 1)
For i = 1 To ub - 2
    For j = i + 1 To ub - 1
        For k = j + 1 To ub
            n = n + 1
            a(n, 1) = t(i, 1) & "-" & t(j, 1) & "-" & t(k, 1)
Next k, j, i
[B:B].NumberFormat = "@" 'format Texte
[B1].Resize(n) = a 'restitution
[B1].Offset(n).Resize(Rows.Count - n).ClearContents 'RAZ sous le tableau
End Sub
Fichier joint.

A+
 

Pièces jointes

  • combs3a3(1).xls
    87.5 KB · Affichages: 38

Staple1600

XLDnaute Barbatruc
Bonjour, le fil, le forum, Claude, Victor21, job75

Bonjour Victor21,
Merci de vous intéresser à mon sujet.
Je fais des analyses personnelles en profondeur avec un logiciel très performant.
Donc le mystère restera dans les profondeurs et le nom du logiciel trés performant itou ;)
Chut .. Secret Défense ;)

Bref le parfait aperçu d'un fructueux partage des connaissances, dans le pur esprit XLDien :D
 

Victor21

XLDnaute Barbatruc
Bonjour à tous.

@claude43 : Pour le fun, en formules :

@Lone-wolf : bravo pour tes 6500 messages, sauf s'ils sont tous aussi pertinents que le 6500° :)
Pour les plaisanteries, rappelons qu'il y a le salon, et le nb de message déposés est comptabilisé de la même manière, sans polluer les fils "sérieux"
 

Pièces jointes

  • 35_3par3_formules.xlsx
    92.6 KB · Affichages: 26
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour JM, Lone-wolf,

Si l'on veut jouer les prolongations, fichier (2) avec 150 éléments et 551 300 combinaisons restituées sur 9 colonnes.
Code:
Sub Combinaisons_3a3()
Dim dur#, t, ub&, rc&, col%, a$(), i&, j&, k&, n&
dur = Timer
Application.ScreenUpdating = False
t = [A2:A151] 'à adapter
ub = UBound(t)
rc = Rows.Count - 1
ReDim a(1 To rc, 1 To 1)
col = 2
With Columns(col).Resize(, Columns.Count - col + 1)
    .NumberFormat = "@" 'format Texte
    .Delete 'RAZ
End With
For i = 1 To ub - 2
    For j = i + 1 To ub - 1
        For k = j + 1 To ub
            n = n + 1
            a(n, 1) = t(i, 1) & "-" & t(j, 1) & "-" & t(k, 1)
            If n = rc Then
                Cells(1, col) = "Col " & col - 1
                Cells(2, col).Resize(rc) = a 'restitution de la colonne entière
                If col Mod 2 = 0 Then Columns(col).Interior.ColorIndex = 24
                ReDim a(1 To rc, 1 To 1) 'RAZ
                n = 0: col = col + 1
            End If
Next k, j, i
If n Then
    Cells(1, col) = "Col " & col - 1
    Cells(2, col).Resize(n) = a 'restitution de la colonne partielle
    If col Mod 2 = 0 Then Cells(1, col).Resize(n + 1).Interior.ColorIndex = 24
End If
Columns(2).Resize(, col - 1).AutoFit 'ajustement largeur
ActiveSheet.DrawingObjects(1).Left = Columns(col + 1).Left + 1 'position du bouton
Application.ScreenUpdating = True
MsgBox Format(Application.Combin(ub, 3), "#,##0") & " combinaisons listées en " & Format(Timer - dur, "0.00 \s")
End Sub
Exécution en 3,7 secondes chez moi.

A+
 

Pièces jointes

  • combs3a3(2).xls
    95.5 KB · Affichages: 41

claude43

XLDnaute Junior
Re : Staple1600,

Pas du tout ! Par exemple le logiciel ExpertKeno de Louis Payras a une bibliothèque importante de systèmes réducteurs. Par contre il n'y pas de systèmes à garantie totale et pour cause qu'a priori ça rien d'intéressant, sauf que pour moi, ponctuellement, pour mon analyse personnelle j'en avais besoin !
Encore grand merci au forum.

Cordialement.

Claude
 

Discussions similaires

Réponses
3
Affichages
485