Permutation de cellule automatisée

Bonjour,

J'ai une problématique,

Sur une roue, je dois placer 35 pièces qui ont des masses différentes & je voudrais minimiser le balourd résiduel de cette roue

Le principe étant de permuter les cellules contenant les masses des pièces

Le balourd généré est calculé en automatique voir cellule"K7" & "N7" pour l'emplacement angulaire du balourd

J'ai une condition a respecter : Le balourd résiduel de la roue doit être égal ou approchant de 0

Je n'ai pas de connaissance en VBA mais a priori, la fonction boucle ou le solveur doit être capable de m'automatiser le calcul

Quelqu'un peut-il m'aider,

Voir fichier joint,

Merci d'avance

Salut,

Je ne connais pas grand chose à ton métier, mais comme tu n'as pas trop de succès avec ta demande, je me lance

Evite de placer des informations un peu partout. J'en ai trouvé sur ton fil, sur ta Feuil1, sur ta Feuil2. On ne sait plus ce qui se complète, ce qui se recoupe, ce qui se contredit

Est-ce que tu peux nous fournir un calcul manuel de ce que tu désirerais voir automatiser et nous indiquer comment tu y arrives ?

A te relire.

Bonjour,

C'est une première pour moi, poser une question sur un forum

Pour explications : je voudrais minimiser le balourd généré par la différence des masses des pièces qui tournent autour d'un axe en les plaçant au mieux.

Le but de l'exercice étant de replacer les pièces colonne B & C dans le bon ordre pour que la résultante du balourd calculé (cellule K7) soit égale a la cellule K8.

La cellule K7 est une valeur calculée

La cellule K8 est la valeur cible

Impératif :

Garder l'attribution du numéro d'identification de la pièce avec sa masse

Exemple : La pièce n°15 aura toujours une masse de 11,6g la cellule B4 (identification de la pièce) correspond a la cellule C4 (masse de la pièce n°15)

En tout cas merci de tes commentaires,

Cordialement

Bonsoir,

si l'on met toutes des pièces de même masse, le balourd calculé n'est pas nul. Est-ce normal ?

Bonjour tout le monde,

Calo, il me semble qu'à part avoir supprimé tes feuilles 1 et 2, tu n'as rien modifié sur ton tableau ; que tu n'as en tout cas pas mis le calcul manuel demandé. Est-ce que je me trompe ?

Cordialement.

Désolé de pas avoir été plus clair dès le début.

En fait, ma méthode un peu archaique consiste a recupérer les masses des pièces, de les trier par ordre alphabétique (de la plus légère a la plus lourde)

Je réalise un copier coller comme indiqué sur l'onglet 'permutation manuelle', j'ai essayé d'être aussi clair que possible avec mon petit schéma

Après ces opérations de copier coller

On passe d'un balourd résultant non optimisé (trié de la plus légere a la plus lourde, voir onglet "Calcul repartition") de 5.33g.m a un balourd 'optimisé' a 0.59g.m (voir onglet "Résultat")

Est il possible d'affiner la résultante a l'aide de la fonction boucle ?

Je voudrais optimiser l'opération parce que j'ai un paquet de répartition a réaliser et les copier coller, on a vite fait de se planter.

Etant donné que ces pièces montés sur un rotor tournent a 1500 ou 3000 rpm, une boulette de quelques grammes peut poser de graves problèmes.

Merci d'avance

Salut,

Dans le fichier ci-joint, j’ai reproduit exactement la même répartition que tu as faites dans ton exemple, bien que ne n’ai pas trouvé logique que tu reportes les lignes impaires de la feuille ‘permutation manuelle’ (lignes 5, 7, 9, etc.) dans les lignes 22, 23, 24, etc., qu’à la ligne 21, tu reportes le chiffre dans la ligne 21 puis que tu reprennes le report des lignes impaires suivantes (lignes 23, 25, etc.) dans les lignes 30, 31, etc. Regarde à ce propos mon nouveau coloriage pour cette feuille.

Ensuite, sur cette même feuille, tu as utilisé 2 x la pièce 22 et tu as oublié la pièce 26. Mes résultats ne sont donc pas les mêmes que les tiens.

Si tu vas maintenant sur la feuille ‘Calcul repartion’, tu vois que j’ai placé un bouton ; il lance la macro qui réalise ton tri spécial.

Si tu plaçais des valeurs non triées dans les colonnes B et C de cette feuille, elles seraient également triées en début de macro.

Je ne sais pas si tu imaginais tester toutes les possibilités de combiner tes 35 valeurs, mais ça représenterait un nombre plus qu’astronomique d’opérations (si je ne me trompe pas, 35 * 34 * 33 * 32 *………….* 3 * 2 opérations).

A te relire.

Merci Yvouille pour le temps passé, pour ta patience & pour tes explications,

Je vais essayer de comprendre ton code et je vais tenter d'insérer une variable (nombre de pièces)

Je ne recherche pas le zéro absolu

En tout cas Merci.

Re-bonjour,

Ce serait sympa de quand même me dire ton degré de satisfaction par rapport à mon travail. Es-tu déçu du résultat ? N’était-ce pas ce que tu attendais ?

J’ai fait plusieurs essais et j’ai finalement décidé de te montrer une macro répondant exactement à ton tri. Mais on pourrait faire en sorte que le code essaie disons 3 tris différents (mais quand même des tris étudiés’, pas uniquement hasardeux) et qu’il choisisse la meilleure de ces variantes ? Est-ce que ça peut t’intéresser ?

Au sujet du nombre de pièces, c’est possible que mon code soit ardu à adapter puisqu’il est calqué à 100 % sur ton tri apparemment ‘hasardeux’. Mais avec ma proposition d’essayer quelques variantes 'étudiées' puis d’en choisir la meilleure, ça pourrait être une meilleure solution, non ? Si ça t'intéresse, je peux te montrer ma proposition puis tu peux me dire si tu penses qu'une ou deux autres variantes devrait également être essayées.

A te relire.

Bonjour Yvouille,

C'est ce que j'attendais, ca calque tout a fait avec ce que j'avais exposé

Mais en tout cas, Je suis preneur de tes propositions d’essayer quelques variantes 'étudiées'

Il est vrai que mon tri est pour le moins hasardeux, c'est peut être pour ca que j'ai du mal a me mettre a la programmation VBA

Mais le but ultime de cette vaste problématique est de pouvoir automatiser au mieux pour récupérer :

- Une résultante nulle ou approchante

OU Une résultante X & une phase Y

OU Une résultante X & une phase Y avec imposition d'une pièce a une position bien précise

OU Une résultante X & une phase Y avec imposition de plusieurs pièces a des positions bien précises.

Est ce que tu penses qu'utiliser le solveur d'Excel en lui demandant de permuter des cellules comme tu la fait avec VBA est possible?

Cordialement

Calo

Salut,

Calo a écrit :

Est ce que tu penses qu'utiliser le solveur d'Excel

Je ne connais pas trop cette option d'Excel et ne vois pas en quoi elle pourrait nous être utile. Je pensais donc plutôt partir dans la même direction que toi et déplacer les pièces selon 2 ou 3 variantes 'étudiées' (selon moi tu comprendras mieux ce que je veux dire lorsque j'aurais pu réaliser mon code) et de garder la meilleure variante trouvée.

Mais avant que je me lance, peux-tu encore me dire quel est le nombre maximum et minimum de pièces possibles ainsi que s'il peut également y avoir des nombres de pièces paires ?

A te relire.

Bonjour Yvouille

Le nombre mini de pièces est : 35

Le nombre maxi de pièces est : 100

Mais malheureusement le pas est de 1, on peut avoir 35 pièces ou 36, ou 37 ou 38 jusqu'a 100 pièces.

Pour un nombre de 77 pièces par exemple, Est ce que l'on pourrait travailler avec 11 paquets de 7 pièces ou 7 paquets de 11 pièces?

Cordialement

Calo

Salut,

Dans le fichier ci-joint, j’effectue 3 variantes qui sont visibles à la fin de la macro sur les 3 feuilles Variante 1 à 3. Ces feuilles sont effacées à chaque nouvel essai et recommencées à zéro.

Pour effectuer un essai, tu peux placer des données dans les colonnes B et C de la feuille ‘Calcul répartition’ et lancer la macro par le bouton ‘Répartition’ ou cliquer sur l’un des 4 boutons dans la colonne J de cette feuille.

J’ai fait exprès de numéroter les pièces de 1 à n dans mes trois essais '31, 32 ou 100 données' de manière à ce que l’on voie comment elles sont déplacées par la macro.

Dans tous mes essais automatisés, les données sont déjà triées, mais dans la réalité, le code trie les données au préalable, selon la masse.

Pour la Variante 1, j’ai déplacé les pièces un peu comme tu l’avais montré au début : une pièce en haut, une pièce en bas, une pièce en haut, etc. Pour l’essai ’31 données’ par exemple, les pièces impaires se retrouvent à la suite de 1 à 31 puis les pièces paires de 2 à 30.

Pour la Variante 2, la dernière ligne est déplacée vers le milieu de la colonne. Pour l’essai ’31 données’ par exemple, la pièce 30 se retrouve juste après la pièce 31, les autres pièces paires descendent d’un cran.

Pour la Variante 3 enfin, la dernière ligne de la Variante 1 est déplacée au sommet de la colonne. Pour l’essai ’31 données’ par exemple, la pièce 30 se retrouve tout en haut, les autres pièces paires descendent d’un cran.

Je constate alors que pour tous les essais effectués, les Variantes 1 et 3 sont identiques et meilleures que la Variante 2.

Si tu trouves de meilleures manières de mélanger ces données, je veux bien essayer de les réaliser par macro.

Par la suite, si tu découvres par exemple par tes essais que parfois c’est la variante 1, parfois la variante 2, parfois la variante 3 qui est la meilleure, on pourrait continuer la macro et faire en sorte que le meilleur résultat soit repris en finale sur la feuille de base et que les 3 feuilles ‘Variante 1 à 3’ soient éventuellement effacées définitivement.

Sinon, s’il s’avère que les variantes 1 et 3 sont toujours identiques et toujours les meilleures, je peux modifier le code de manière à ne plus effectuer tous ces comparatifs vraisemblablement inutiles.

A te relire.

Calo a écrit :

Bonsoir Yvouille

Désolé de pas avoir donné de nouvelles, j'ai des journées bien chargées,

& Merci en tous cas pour le temps que tu as passé.

Il est vrai que les variantes 1 & 3 donnent le même résultat,

Je me suis rendu compte qu'en utilisant des valeurs élevées (genre 20000) & un nombre de pièces important (genre 84 pièces), le résultat n'est pas encore assez proche de zéro

Je pense que la chose a faire, c'est d'abord de faire ce que tu as réalisé par VBA et puis après affiner le calcul en déplaçant quelques pièces pour avoir une résultante approchant de zéro

Mais même en connaissant l'emplacement du balourd (la position angulaire) ainsi que la valeur du balourd je n'ai pas encore la technique pour pouvoir affiner le calcul, c'est un peu du pif.

J'essaye en ce moment de replacer quelques pièces j'ai un peu de mal avec la fonction Recherche V.

Bien cordialement,

Calo

Merci pour ta réponse, mais merci aussi de rester sur le Forum,

Bonne continuation.

Rechercher des sujets similaires à "permutation automatisee"