Creation de couples sur vba [Résolu]

Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
- 29 déc. 2016 à 12:57 - Dernière réponse :
Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
- 29 déc. 2016 à 21:44
Bonjour,
je veux afficher par uncode vba dans un tableau d une feuille excel des couples (voir IMAGE) si je lui fixe le nombre de ligne par exemple 3 et je veux qu il fait la difference entre (i,j) et (j,i)
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 29 déc. 2016 à 13:33
1
Merci
Bonjour,

Merci de nous aporter plus de précisions sur ce que tu souhaites faire....

Par exemple :
si je lui fixe le nombre de ligne par exemple 3

Tu lui "fixe" où ça ?

je veux qu il fait la difference entre (i,j) et (j,i)

Tu veux qu'il fasse la différence ...ok... mais il l'affiche où ça ?

Pourrais tu compléter ton tableau pour nous montrer le résultat attendu ??


PS : Ici tu es sur un forum de développeurs .... nous ne ferons pas tout le code à ta place. N'oublie pas de nous montrer ce que tu as commencé à coder !

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
- 29 déc. 2016 à 13:45
je suis entrain de créer un programme vba sur excel qui me permet de créer des couple de cells :
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
Commenter la réponse de jordane45
Meilleure réponse
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 29 déc. 2016 à 15:11
1
Merci
En gros...
ce que tu cherches c'est ça :
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



Bien sûr .. à la place du debug.print .. toi tu vas le mettre dans ta colonne B ...


Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
- 29 déc. 2016 à 15:37
merci d avoir repondu..
mais deja pour l 'afficher dans ma colonne j ai pas compris comment le faire!! au lieu de debug.print je fais koi ??
puis j ai fait un msg box et il m a affiché meme les couples (i,i) or moi je veux les (i,j) tq i different de j
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
>
Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
- 29 déc. 2016 à 15:49

l m a affiché meme les couples (i,i) or moi je veux les (i,j) tq i different de j

Ben tu ajoutes un IF dans le code pour les exclure tout simplement ...


mais deja pour l 'afficher dans ma colonne j ai pas compris comment le faire!! au lieu de debug.print je fais koi ??

Tu ne sais pas écrire dans des cellules Excel en VBA ???

Tu ne veux pas que je fasses tout le boulot à ta place quand même ...


Je vais quand même t'aider ... voici le code dans les couples i;i
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
Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
>
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 29 déc. 2016 à 15:52
bon pour la difference j ai pu la regler :)..
mais pour debug.print c est que c est la 1 ere fois que je l utilise donc j ai pas pu comprendre votre remarque ou inclure au juste ma colonne :) c est ça ma question :)
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
>
Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
- 29 déc. 2016 à 16:01
cette portion de code :
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

parcours le résultats (stockés dans un array) et (via la debug.print) les affiche dans la fenêtre d'exécution de VBA.
Donc à la place du debug.print tu mets le code qui va bien pour écrire dans tes cellules excel.

Au passage ... lorsque quelqu'un te donne du code et que tu ne sais pas à quoi servent les instructions... il existe un truc super pratique : L'aide (via la touche F1 ) ou au pire .. internet !

Bref...
Tu modifies le code
 For x = 1 To UBound(toto, 2)
  Debug.Print toto(1, x) & ";" & toto(2, x)
 Next

par un truc du genre :
 For x = 1 To UBound(toto, 2)
  sheets(1).cells(ligne,colonne).value =   toto(1, x) & ";" & toto(2, x)
 Next

bien entendu .. la variable colonne ( correspond à la colonne B dans ton exemple) et la variable ligne est à incrémenter au fur et à mesure que tu inscrits les valeurs dans la feuille.(tu devrais y arriver je pense...)
Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
>
Messages postés
23285
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 29 déc. 2016 à 21:44
c est bon c est reglé :) merci
Commenter la réponse de jordane45
Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 29 déc. 2016 à 19:24
1
Merci
Bonjour,
Dans le simple but de clarifier l'esprit :
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)

en quoi (entre autres) le "couple" (1,2) est-il différent du couple (2,1) ???
Nous n'avons décidément pas la même définition du mot "couple".
Pour moi : un "couple est composé de deux éléments, quel que puisse être leur ordre. Et déterminer les "couples" possibles parmi x éléments, revient à déterminer le nombre des combinaisons de deux éléments choisis parmi x éléments.

Merci ucfoutu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Messages postés
16
Date d'inscription
jeudi 22 décembre 2016
Dernière intervention
2 janvier 2017
- 29 déc. 2016 à 21:17
c est pas la definition mathématique d'un couple ! mais juste les combinaisons possibles :) car je veux comparer apres les positions (i,j) et (j,i) a partir d une autre matrice or ces deux n ont pas la meme valeurs :)
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.