VBA permutation

Bonjour, est-ce que quelqu’un aurait une VBA permettant de :

- Donnée tout les combinaisons possible à 4 chiffres ( 1 colonnes = un chiffre ou nombre ) donc 4 colonnes sur une plage allant de 1 à 40

et comme cela dépasse les limites de lignes qu'il puisse continuer sur les colonnes suivants lorsqu'il aura atteint 300 000 lignes

Exemple :

COL A COL B COL C COL D ( laisser colonne E libre, et continuer à partir F ) COL F COL G ....

1 2 3 4

1 2 3 5

1 2 3 6

1 2 3 7

1 2 3 8

1 2 3 9

1 2 3 10

1 2 3 11

1 2 3 12

Arrivé à la ligne 300.000 passée à colonne F.

Donc les colonnes E, J, O, T, X resteront vides.

Merci d'avance et bonne journée à tous !

Bonjour,

une solution possible

Sub aargh()
    Dim r&(1 To 300000, 1 To 4), col&, i1&, i2&, i3&, i4&, k&
    col = 1
    For i1 = 1 To 40
        For i2 = 1 To 40
            If i1 <> i2 Then
                For i3 = 1 To 40
                    If i3 <> i1 And i3 <> i2 Then
                        For i4 = 1 To 40
                            If i4 <> i1 And i4 <> i2 And i4 <> i3 Then
                                k = k + 1
                                r(k, 1) = i1
                                r(k, 2) = i2
                                r(k, 3) = i3
                                r(k, 4) = i4
                                If k = 300000 Then
                                    Cells(1, col).Resize(k, 4) = r
                                    col = col + 5
                                    Erase r
                                    k = 0
                                End If
                            End If
                        Next i4
                    End If
                Next i3
            End If
        Next i2
    Next i1
    If k > 0 Then
        Cells(1, col).Resize(k, 4) = r
    End If
End Sub

Bonjour,

Une autre solution (une seule cellule pour chaque combinaison).

Tu peux utiliser n'importe quel élément à combiner (texte ou nombre), l'ordre est libre.

Chez moi, ça met près de 10 minutes pour trouver 2 193 360 combinaisons (4 parmi 40).

bonjour , un grand merci j'ai la première solution marche ! la deuxième les chiffres n'était pas dans la même ligne mais c'est bon c'est ce que je voulais la 1er solution parfait merci !

Rechercher des sujets similaires à "vba permutation"