Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 VBA - Combinaisons possibles à partir d'une liste d'actions

AUREL87

XLDnaute Nouveau
Bonjour à tous,

A partir de la colonne A, je charge une variable tableau en VBA. Je voudrais l'utiliser pour déterminer toutes les combinaisons possibles (cf image ci-dessous).
Je sais avec tout ça que les actions commençant par "A" seront les 1ères (donc ici AB et AC).

J'ai tenté une solution par "niveaux" c'est à dire avec une recherche des couples commençant par "A" pour le niveau 1, puis en niveau 2 la 2ème partie des couples des niveaux 1 ...

Si je prends un exemple :
- NIV1: AB-BD
- NIV2: BD-DF
- NIV3: DF-FG et DF-FH

=> AB-BD-DF-FG ou AB-BD-DF-FH

Lorsque j'ai plusieurs solutions comme le NIV3 ci-dessus, c'est là où je bloque.

Si vous avez une piste, je suis preneur car je m'arrache les cheveux.

Je vous remercie par avance.
@urel87

 
Dernière édition:
Solution
sur ce coup la.. je pense que je suis balèze.. arriver à pondre ca avec des explications aussi peu claires...
par contre..pour une fois.. je ne vais pas prendre la peine d'expliquer le code.. déjà que j'ai recréé le fichier..
à toi de regarder, chercher etc etc

vgendron

XLDnaute Barbatruc
Bonjour

déjà, il y a un problème
tu parles de combinaisons à partir des éléments de la colonne A
sur ton image, on voit des couples de 2 en colonnes A (AB-BD ou AB-BE....) mais en colonne B; on voit des groupes de 5... au lieu de 4
ensuite tu parles de niveau.. ????
donc.. plutot qu'une image, un fichier exemple serait le bienvenu.
 

AUREL87

XLDnaute Nouveau
Bonjour,

Alors effectivement je n'ai pas mis de fichier car je n'ai pas réussi à appliquer ma solution que j'appelle par niveau.
J'ai bloqué dans ma démarche:
- Je boucle sur mon tableau, je regarde le terme en index i => AB-BD pour i = 0
- J'inscrit une autre boucle pour partir de l'indice i + 1 et je regarde si le terme de droite de i est égal au terme de gauche de i+1 ...
- Si c'est le cas, alors j'ajoute la partie droite de i+1

=> La difficulté que je rencontre est que je ne sais pas gérer le fait qu'il peut y avoir plusieurs débuts identiques : dans mon exemple, cela va être la ligne 2 et 4 de la colonne combinaison.
Je pense qu'il manque une étape supplémentaire mais je ne vois pas laquelle.

Tu as raison mon exemple de combinaison n'est pas explicit puisque pour montrer le résultat que je souhaite obtenir, j'ai déjà supprimer les doublons (ici BD, DF et FG qui apparaissent 2 fois mais que je supprimerai à la fin) :
AB-BD-BD-DF-DF-FG-FG-GI
 

vgendron

XLDnaute Barbatruc
sur ce coup la.. je pense que je suis balèze.. arriver à pondre ca avec des explications aussi peu claires...
par contre..pour une fois.. je ne vais pas prendre la peine d'expliquer le code.. déjà que j'ai recréé le fichier..
à toi de regarder, chercher etc etc
 

Pièces jointes

  • Aurel.xlsm
    40.1 KB · Affichages: 6

AUREL87

XLDnaute Nouveau
Je confirme que tu es balèze!

Je ne sais pas ce que tu aurais aimé comme fichier alors que ma demande concernait des idées pour réaliser le résultat souhaité ou des pistes de choses similaires.

Néanmoins, je te remercie pour avoir pris de ton temps pour apporter une solution qui fonctionne parfaitement. Je vais bien étudier ton code.

vgendron, un grand merci!

@urel
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Aurel vgendron,
J'arrive quelque peu après la bataille.
Mais tant qu'à faire, autant livrer la PJ.
Mais je me suis limité à trouver les solutions complètes d'enchainements comme sur la photo du post #1.
A voir.
 

Pièces jointes

  • Aurel87.xlsm
    902.7 KB · Affichages: 11

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…