si je lui fixe le nombre de ligne par exemple 3
je veux qu il fait la difference entre (i,j) et (j,i)
Sub combi() Dim nbLignes As Long Dim res() nbLignes = 3 ReDim Preserve res(1 To nbLignes) For i = 1 To nbLignes res(i) = recurscombi(i, nbLignes) Next nbRes = UBound(res) For a = 1 To nbLignes toto = res(a) For x = 1 To UBound(toto, 2) Debug.Print toto(1, x) & ";" & toto(2, x) Next Next End Sub Function recurscombi(j, k) Dim tbl() ReDim Preserve tbl(2, 1 To k) For i = 1 To k tbl(1, i) = j tbl(2, i) = i Next recurscombi = tbl End Function
l m a affiché meme les couples (i,i) or moi je veux les (i,j) tq i different de j
mais deja pour l 'afficher dans ma colonne j ai pas compris comment le faire!! au lieu de debug.print je fais koi ??
Function recurscombi(j, k) Dim tbl() ReDim Preserve tbl(2, 1 To k) For i = 1 To k If i <> j Then tbl(1, i) = j tbl(2, i) = i End If Next recurscombi = tbl End Function
nbRes = UBound(res) For a = 1 To nbLignes toto = res(a) For x = 1 To UBound(toto, 2) Debug.Print toto(1, x) & ";" & toto(2, x) Next Next
For x = 1 To UBound(toto, 2) Debug.Print toto(1, x) & ";" & toto(2, x) Next
For x = 1 To UBound(toto, 2) sheets(1).cells(ligne,colonne).value = toto(1, x) & ";" & toto(2, x) Next
si par exemple l'utilisateur entre la valeur 3 (de ligne) les possibilités seront : (1,2) (1,3)
puis (2,1) (2,3)
et enfin (3,1) et (3,2)
Modifié par ametudiante le 29/12/2016 à 13:51
je m'explique :
je demande auX utilisateurS d'entrer un nombre de ligne ,puis je dois afficher dans une feuille excel toutes les possiblites de couples
si par exemple l'utilisateur entre la valeur 3 (de ligne) les possibilités seront : (1,2) (1,3)
puis (2,1) (2,3)
et enfin (3,1) et (3,2) donc l affichage sera comme celui deja montré sur l image
pour moi je veux afficher EST le couple (1,2) EST le couple (2,1) car ils ne representent pas la meme chose pour mon objectif apres
ce que j'ai deja fait c'est faux car il me donne la meme chose dans toutes les cellules!
For i = 1 To ligne
For j = 2 To (ligne * (ligne - 1)) + 1
Feuil5.Cells(j + 1, 2).Value = "(" & i & "," & i + 1 & ")"
Next j
Next i