Je dispose dans ma feuille des valeurs suivantes, mon but est d’obtenir toutes les combinaisons possibles.

________ A________ B________ C_________ D
1_______ aa_______ bb_______ cc________ ff
2________ __________________dd________ gg
3________ __________________ee________ hh


Le code suivant me permet d’obtenir ce que je désire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
For Each Cell4 In FeuilleTable2.Range("A1")
    For Each Cell5 In FeuilleTable2.Range("B1")
        For Each Cell6 In FeuilleTable2.Range("C1:C3")
            For Each Cell7 In FeuilleTable2.Range("D1:D3")
 
Test = Cell4.Value & “ “ & Cell5.Value & “ “ & Cell6.Value & “ “ & Cell7.Value
             MyClasses.Add Test
                For i = 1 To MyClasses.Count
                      FeuilleTable3.Range("A" & i) = MyClasses.Item(i)
                Next i
            Next Cell7
        Next Cell6
    Next Cell5
Next Cell4
Le résultat est le suivant :

aa bb cc ff
aa bb cc gg
aa bb cc hh
aa bb dd ff
aa bb dd gg
aa bb dd hh
aa bb ee ff
aa bb ee gg
aa bb ee hh

J’ai malgres tout deux problèmes.

Le premier est que je voudrais connaitre le nombre de lignes utilisées pour chaque colonne. J’ai pensé à :
NbLignes = FeuilleTable2.UsedRange.Rows.Count
For Each Cell4 In FeuilleTable2.Range("A1:" & NbLignes)
Mais je ne sais pas l’adapter à une seule colonne.

Mon deuxième problème est que je ne suis pas limité à 4 colonnes comme dans mon exemple mais cela peut varier donc je ne sais pas comment faire pour adapter mon code en fonction du nombre de colonnes.

Voila tout, en espérant que quelqu’un poura m’aider.
Merci.