VBA et combinaisons

Résolu
I folima Elda Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
I folima Elda Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voilà, j'essaie de créer une macro me permettant de faire des combinaisons. En détail, j'ai en colonne 1, 2 et 3 des noms. exple: X1, X2, X3
Je souhaite que dans les colonne suivantes il me fasse la combinaison des nom du type: X1X2, X1X3, X2X3 sachant que l'ordre n'a pas d'importance (donc X1X2=X2X1 !!).
De plus, j'ai fait en sorte que dans ma macro le nombre de nom (donc X..) est une variable donnée par l'utilisateur.

Voilà, j'espère avoir été clair. Ca fait déjà 2 jour que je buche dessus mais il veut rien entendre.
Merci de votre aide

4 réponses

amigo
 
Bonjour,

Ce serait plus simple si tu nous montrais ta macro qui ne marche pas en nous expliquant ou est le problème.

A+.
0
I folima Elda Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai réussi un peu à contourner le problème mais j'ai maintenant un problème de colonne.
Je te passe mon code sachant que c'est la dernière partie du code qui foire un peu. Et puis il me fait pas toute les combinaison quand je met un p=4 et plus

p = InputBox("Combien y a-t-il de paramètres variants?", "paramètres variants")

xp = 2 ^ p
    intro1 = MsgBox("Il y aura " & xp & " expériences à effectuer", vbOKOnly + vbInformation, "exprériences")
    
'intro des paramètres
For l = 1 To p
Xp1 = InputBox("Quel le paramètre " & l & " ?")
Cells(l, 5) = "X" & l & ": " & Xp1
Cells(l, 5).Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
Next

'intro des nombre de ligne
j = p + 3
Cells(j - 1, 2) = "M"


'alternance -1 et +1 suivant colonne
v = -1
j = p + 3

        For l = 1 To p
            Cells(p + 2, 2 + l) = "X" & l
        Next
            
'intro valeur Y
    Cells(j - 1, p + 3) = "Y"
    
'intro interactions paramètres
j = p + 3
i = 1
For g = 1 To p - 1
    For h = 2 To p
If Cells(j - 1, g + 2) <> Cells(j - 1, h + 2) Then
    Cells(j - 1, p + g + h + i) = Cells(j - 1, g + 2) & "." & Cells(j - 1, h + 2)
End If
    Next
    i = i + 1
Next
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Si j'ai bien compris ce que tu recherche...

Sub Algo1()
Dim i As Integer, e As Integer, d As Integer, c As Integer
Dim NbVariable As Integer
Dim Txt As String
    Sheets("Feuil1").Select
'Nombre de variable à traiter pour le test
    NbVariable = 6
    'Mettre les 6 variables dans cellules A1,B1,etc..
    i = 1
Reco:
    For e = i To NbVariable - 1
        c = 1
        For d = e + 1 To NbVariable
            Cells(i + 1, c) = Cells(1, e) & Cells(1, d)
            c = c + 1
        Next d
        i = i + 1: GoTo Reco
    Next e
End Sub

A+
0
I folima Elda Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
En fait c'est bon j'ai réussit durant la journée.
Merci de votre aide.
0