Code Vba pour l'optimisation de câble

zean-Missel

XLDnaute Nouveau
Bonjour à tous et à toutes,

A partir de "x" couples (dans notre exemple 21 couples)
je souhaiterai :
Assembler les couples entre eux pour :
1/ obtenir des listes de 5 lettres (non répétées) : Chaque ligne de 5 lettres utilise 10 couples
2/ utiliser tout les couples en ayant le moins de ligne possible
3/ les couples qui resteront seront listés à la fin

Qui souhaite m'aidez SVP ? n’hésitez pas à me dire si c'est pas très compréhensible
Voir fichier
 

Pièces jointes

  • Classeur1.xlsm
    17.5 KB · Affichages: 55

zean-Missel

XLDnaute Nouveau
Bonjour Noel,
Merci pour votre réponse ,
Cependant ce n'est pas ce que je souhaite.
Dans mon exemple les couples sont déjà listés en bleu.
Je souhaiterais avec ces couples faire des séquences (pour l'exemple 5 lettres mais ça pourrait être plus ou moins) : exemple : abefg (dans cette séquence j'ai 10 couples différents tirés de ma liste du départ)
du coup il en reste 11 (couple ) avec laquelle on fait pareil
il devrait y avoir un reste.
C'est la routine qui m'intéresse avec la possibilité de choisir le nombre (ici 5) dans la séquence.
 

Noel Bedard

XLDnaute Occasionnel
Bonjour,
Donc avec 5 = 10 couples, a partir de la colonne A, je choisi les 10 premières lignes et je forme des séquences de 5 lettres. (AB,AC,AD,AE,AF,AG,BC,BD,BE,BF) = aux lettres suivantes ABCDEFG.

ABCDE,ABCDF,ABCDG,ABCEF,ABCEG,ABCFG,ABDEF,ABDEG,ABDFG,ABEFG,ACDEF,
ACDEG,ACDFG,ACEFG,ADEFG,BCDEF,BCDEG,BCDFG,BCEFG,BDEFG CDEFG

Avec les 10 lignes suivantes je forme une autre séquences de 5 lettres (BF,BG,CD,CE,CF,CG,DE,DR,DG,EF) = aux lettres suivantes BCDEFG.

BCDEF,BCDEG,BCDFG,BCEFG,BDEFG,CDEFG

La ligne 21 qui est le reste apparaît à la fin. FG

Mais la deuxième séquence est déjà incluse dans la première, je ne comprends vraiment pas ce que vous demandez.

Dans votre message vous donnez comme exemple ABEFG ce qui donne les couples suivants:

AB,AE,AF,AG,BE,BF,BG,EF,EG,FG
il reste donc:
AC,AD,BC,BD,CD,CE,CF,CG,DE,DF,DG
selon votre liste en colonne A

Excusez-moi je ne comprends rien....
 

zean-Missel

XLDnaute Nouveau
Bonjour Noel,
Tout d’abord merci de vous intéresser à mon problème.;)
Avec 5 lettres j'ai 10 couples (combinatoire 5x4=20/2=10)
Il ne faut donc pas partir de la liste des couples, mais des 5 lettres (qui devront être prise , non pas au hasard ni dans l'ordre mais "choisi" par la routine de façon à optimiser le nombre de ligne de 5 lettres cad le moins possible en utilisant le plus de couples possible et qu'il en reste à la fin le moins possible seule) de la en tirer les couples qui en découlent (combinatoire 5x4=20/2=10) puis les supprimer de la liste de départs.
Dans mon exemple j'ai 21 couples d'ou je doit sotir des ensemble de 5, en réalité j'en aurais beaucoup plus.
Je préfère pas vous embrouiller, pour l'instant restons sur cet exemple , si vous voulez bien, quand la routine sera en place , nous irons plus loin et je rentrerais dans le détail.
Sachez que c'est pour de l'optimisation de câble électrique, que les couple sont des fils de couleurs (parfois plusieurs couleur sur le fil) et que les 5 fil sont câblé entre eux par paires .....:confused:
La première difficulté réside dans le fait qu'il faut que vous arriviez à saisir la problématique.(pas facile je vous l'accorde)
Après plusieurs échange de ce type je pense que j' arriverais à me faire comprendre.
A plus:p
 

Noel Bedard

XLDnaute Occasionnel
Bonsoir zean-Missel et le Forum,
Voici un autre exemple.
Peut-être plus près qui sait.

Pour (5 x 4) / 2 = un groupe 10, donc avec 21 paires de sélectionnées.
1. Je prends les 10 premières paires, je forme des combinaisons de 5 lettres.
2. Je prends les 10 suivantes paires, je fais la même chose.
3. Il me reste la paire que j'ai pas touchée.


Bye
Noël
 

Pièces jointes

  • Combine_Exemple1 (3).xlsm
    33.9 KB · Affichages: 36

zean-Missel

XLDnaute Nouveau
Bonjour Noel,
Bonjour à tous et à toutes

Il ne faut pas utiliser plusieurs fois la même lettre dans la ligne
exemple : avec les 21 pairs définie plus haut :
AB/AC/AD/AE/AF/AG/BC/BD/BE/BF/BG/CD/CE/CF/CG/DE/DF/DG/EF/EG/FG

Lettres = A B C D E 5 lettres me donne 10 paires ( chaque lettre n'est prise 1 fois et chaque paire aussi)
paires qui découle des 5 lettres = AB/AC/AD/AE/BC/BD/BE/CD/CE/DE

Avec 21 c'est facile mais c'est un début l'essentiel est de trouver la routine.
Avec les 26 lettres de l’alphabet :( 26x25)/2 = 325 pairs de départ
Donc d'un point de vue mathématique je peut faire 32,5 groupes de 10 paires tel que ces 10 paires donne 5 lettres differentes
Car ce que je demande, une recherche de minimum, implique d'essayer toutes les combinaisons puisque je cherche le minimum de ligne , j'ai l'impression que la routine doit optimisé son résultat en cherchant parmi toutes les possibilités (je pense)
Une piste (Je ne suis pas programmeur) :
on part de 5 lettres on les décomposes en pairs (10) on élimine ces 10 pairs de la liste de départ
on continue avec 5 autre lettres etc avec pour objectif le minimum de ligne(de 5 lettres) cad = 32.5
C'est pas facile à expliquer, soyez indulgent svp
Bye
 

Noel Bedard

XLDnaute Occasionnel
Bonjour zean-Missel et le Forum,

Je m'excuse mais je ne voix vraiment ce que je dois faire.

Pour la question de fils, ça ne devrait pas être un problème pour moi,
Car depuis plus de 40 ans, je fais du câblage pour le téléphone, la télé et la radio ainsi que du réseau.

Au service de la télé nationale ici au Canada CBC/SRC depuis près de 30 ans.

Donc du multi paires j'en ai fais, mais je ne comprends vraiment pas ou vous allez avec votre requête.

Désolé, Bonne soirée.
Noël
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
294
Réponses
7
Affichages
342
Réponses
3
Affichages
395

Statistiques des forums

Discussions
312 169
Messages
2 085 909
Membres
103 032
dernier inscrit
etima