Combinaisons mots et lettres

cortec

Bonjour à tous,

J'aurai besoin de votre aide pour faire des combinaisons entre des mots et des lettres dans l'ordre. Avec les caractères suivant le fichier joint. Il faudrait que les combinaisons suive l'ordre des caractères et en ayant 11 de ce type :

"SBS20A01000

SSS20A01000

SNS20A01000" etc...

Je ne sais pas si je suis très clair.

Merci

edit :

suppression réponse postée en double

Bonjour,

une solution via une macro qui fait l'hypothèse

que les infos à combiner commencent en colonne A1. le résultat est affiché 10 colonnes après la dernière colonne contenant des caractères à combiner.

(attention pour ton exemple 5529600 combinaisons)

Sub vasy()
    nc = Cells(1, 1).End(xlToRight).Column
    Range(Cells(1, nc + 10), Cells(1, Columns.Count)).EntireColumn.ClearContents
    combinaison 1, "", nc, -1
End Sub
Private Sub combinaison(n, s, nc, ctrc)
    For i = 1 To Cells(1, n).End(xlDown).Row
        s = s & Cells(i, n)
        If n = nc Then
            ctrc = ctrc + 1
            r = 10000 ' nombre de résultats par colonne
            col = Int(ctrc / r)
            lig = ctrc - (col * r)
            Cells(lig + 1, col + 10) = s
        Else
            combinaison n + 1, s, nc, ctrc
        End If
        s = Left(s, Len(s) - 1)
    Next i
End Sub

Bonjour,

Merci pour la réponse.

J'ai suivi les instructions mais ça ne fonctionne pas, il y a des combinaisons avec énormément de caractères et les combinaisons ne s'affichent pas dix colonnes après la dernière colonne des caractères.

Peut être que j'ai mal fait mais il me semble que ça ne fonctionne pas.

Bonjour,

peux-tu joindre ton fichier ?

Voici le fichier

bonjour,

il y avait effectivement un bug. lancer la macro vasy par alt-f8

voici une correction

Sub vasy()
    nc = Cells(1, 1).End(xlToRight).Column
    Range(Cells(1, nc + 10), Cells(1, Columns.Count)).EntireColumn.ClearContents
    combinaison 1, "", nc, -1
End Sub
Private Sub combinaison(n, s, nc, ctrc)
    For i = 1 To Cells(1, n).End(xlDown).Row
        s = s & Cells(i, n)
        If n = nc Then
            ctrc = ctrc + 1
            r = 10000 ' nombre de résultats par colonne
           col = Int(ctrc / r)
            lig = ctrc - (col * r)
            Cells(lig + 1, nc+col + 10) = s
        Else
            combinaison n + 1, s, nc, ctrc
        End If
        s = Left(s, Len(s) - 1)
    Next i
End Sub

Super merci beaucoup ça fonctionne !

Rechercher des sujets similaires à "combinaisons mots lettres"