Créer un tableau de permutation avec des valeurs 0/1

Bonjour à tous,

Je cherche à faire écrire à Excel un tableau des permutations possibles en fonction d'un état (ouvert / fermé), d'un nombre de ligne et d'un "taux de charge" (variable) à respecter dans chaque permutation.

Pour éclaircir ma problématique voici un exemple plus parlant :

Imaginons un montage électrique équipés de 4 ampoules similaires de 50W (nommées L1, L2, L3 et L4). On dispose d'une alimentation 100W donc seulement 50% peuvent être allumées simultanément sinon l'installation disjoncte. Le tableau des permutations possibles est donc le suivant :

L1111000
L2100110
L3010101
L4001011

(j'espère ne pas en avoir oublié )

Je cherche donc un moyen de reproduire ce tableau grâce à Excel ou VBA, mais avec les contraintes d'entrées suivantes :

  • Le nombre de ligne importé est variable (généralement de 2 à 10 ampoules)
  • L'alimentation est différente pour chaque montage, le taux de charge sera donc variable (50%,76,12.528%...)cependant le nombre d'ampoule allumées simultanément est tronqué à l'entier inférieur (4 ampoules de 50W et une alim de 125 allume 2 ampoule et pas 2.5)
  • A terme les puissance des ampoules seront différentes les unes des autres ce qui peut impliquer un nombre différents d'ampoules allumées tant que la somme des puissances reste inférieure à la capacité de l'alimentation

En fichiers joints un exemple des données d'entrée et des solutions manuelles.

Merci par avance pour votre aide.

PS: Je débute en VBA.

23permutation.xlsx (8.74 Ko)

Bonjour et sur le forum,

Ton tableau me fait un peu penser à ça:

36permutations.xlsx (9.16 Ko)

C'est un fichier manuel que je viens rapidement de faire, il peut facilement être fait par macro, en clair je mets toutes les combinaisons possibles (même celle où aucune ampoule n'est allumée), et je regarde ensuite en fonction des puissances la consommation totale, il ne reste ensuite qu'à faire un filtre sur le total, et le nombre d'ampoules allumées simultanément, tu peux ainsi retrouver ton tableau de départ.

On peut aisément imaginer quelque chose comme ça, tu renseignes tes données de base au départ, tu cliques, et ça t'affiche uniquement les résultats où 2 ampoules sont allumées pour une puissance inférieure ou égale à celle cherchée

Qu'en penses-tu?

Bonjour Ausecour et merci pour l’accueil,

Super ce raisonnement ! A première vue il va bien s'appliquer à ma problématique .

Et si je veux faire la même chose mais que le nombre d'ampoules installées est de 5, il faudrait donc créer une nouvelle feuille avec un tableau comprenant 5 colonnes pour les ampoules L1 à L5 (ainsi que des combinaisons qui vont bien) ? Une feuille pour chaque configuration en fait.

Je n'ai pas compris ce qui peut être facilement fait par macro : l'écriture du tableau de combinaison (TC) ou la détermination du nombre d'ampoule basé sur un TC saisie manuellement ?

En tout cas merci pour ce retour, la méthode proposée est super intéressante.

Re,

de rien

Super si tu trouves l'idée bonne, c'est tout ce dont j'avais besoin pour commencer le code, il est désormais finis:

41permutations.xlsm (20.06 Ko)

Tu mets autant d'ampoules que tu veux avec leurs puissances, tu fixes une puissance max à ne pas dépasser ainsi qu'un nombre d'ampoules que tu veux mettre, et tu cliques sur le bouton, le résultat sortira de lui-même, si tu veux, le tableau de résultat peut te faire un récapitulatif des puissances, de toute façon c'est déjà calculé, il faut juste sortir la donnée si besoin

Le nombre d'ampoules que tu veux mettre peut être totalement variable, tu mêmes mettre 30 ampoules si tu le souhaites, attention toutefois, comme le nombre de possibilités qui sont regardées sont en puissance de 2, en clair pour 20 ampoules, le code aura déjà 1048576 possibilités à analyser avec cette méthode (le nombre de lignes que contient une feuille Excel), elle n'est pas optimale et il existe peut-être des façons plus rapide de faire ça mais ça dépasse ce que je sais faire

(Chez moi ça marche en quelques secondes pour 19 ampoules, au-delà, ça me dit que la mémoire est insuffisante).

Wow ! Ton efficacité et celle du code me laisse bouche bée

Je t'en suis très reconnaissant, merci

Bonne journée et à bientôt !

De rien!

à bientôt merci d'avoir passé le sujet en résolu

Rechercher des sujets similaires à "creer tableau permutation valeurs"