VBA et combinaisons

Résolu/Fermé
I folima Elda Messages postés 24 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 10 juillet 2016 - 2 juin 2008 à 15:18
I folima Elda Messages postés 24 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 10 juillet 2016 - 4 juin 2008 à 19:54
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

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 vendredi 11 avril 2008 Statut Membre Dernière intervention 10 juillet 2016
3 juin 2008 à 23:38
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
4 juin 2008 à 10:38
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 vendredi 11 avril 2008 Statut Membre Dernière intervention 10 juillet 2016
4 juin 2008 à 19:54
En fait c'est bon j'ai réussit durant la journée.
Merci de votre aide.
0