Décomposition de longueur en lame
Bonjour,
Pouvez-vous créer un programme Excel (VBA) permettant de décomposer les longueurs des lames 1, 2, 3, 4, 5, 6 et 7 en lames de 20, 35 et 60 unités ?
Les valeurs des lames sont nécessairement des multiples de 5, ce qui facilite leur décomposition en lames de 20, 35 et 60 unités.
L'objectif est de pouvoir déterminer pour une longueur donnée de lame (1, 2, 3, 4, 5, 6 ou 7), combien de lames de 20 et/ou 35 et/ou 60 sont nécessaires pour atteindre cette longueur (la décomposition doit être égale à la longueur de la lame).
La décomposition doit être optimisée de manière à minimiser le nombre de lames requis, quel que soit le cas, néanmoins la décomposition dois correspondre parfaitement à la longueur de la lame.
Donc le programme doit pouvoir calculer la combinaison parfaite de lames nécessaire pour obtenir la longueur donnée.
Calcule :
Longueur Lame 1 = x*20+x1*35+x2*60
X = nombre de lame de 20
X1 = nombre de lame de 35
X2 = nombre de lame de 60
Pour une lame égale à 170 nous aurons 2 lames de 20, 2 lame 35 et 1 lame de 60
Pouvez-vous s'il vous plaît rédiger le programme complet que je pourrais simplement copier-coller ?
Information code :
Le programme doit effectuer ces calculs jusqu'à la ligne 20.
L’ensemble des valeurs sont sur la feuille «12 Vtx»
Lame 1 :
- La longueur de la lame 1 se trouve dans la colonne F et commence à la ligne 7.
- Le nombre de lames de 20 pour la lame 1 est dans la colonne N et commence à la ligne 7.
- Le nombre de lames de 35 pour la lame 1 est dans la colonne O et commence à la ligne 7.
- Le nombre de lames de 60 pour la lame 1 est dans la colonne P et commence à la ligne 7.
Lame 2 :
- La longueur de la lame 2 se trouve dans la colonne G et commence à la ligne 7.
- Le nombre de lames de 20 pour la lame 2 est dans la colonne Q et commence à la ligne 7.
- Le nombre de lames de 35 pour la lame 2 est dans la colonne R et commence à la ligne 7.
- Le nombre de lames de 60 pour la lame 2 est dans la colonne S et commence à la ligne 7.
Lame 3 :
- La longueur de la lame 3 se trouve dans la colonne H et commence à la ligne 7.
- Le nombre de lames de 20 pour la lame 3 est dans la colonne T et commence à la ligne 7.
- Le nombre de lames de 35 pour la lame 3 est dans la colonne U et commence à la ligne 7.
- Le nombre de lames de 60 pour la lame 3 est dans la colonne V et commence à la ligne 7.
Lame 4 :
- La longueur de la lame 4 se trouve dans la colonne I et commence à la ligne 7.
- Le nombre de lames de 20 pour la lame 4 est dans la colonne W et commence à la ligne 7.
- Le nombre de lames de 35 pour la lame 4 est dans la colonne X et commence à la ligne 7.
- Le nombre de lames de 60 pour la lame 4 est dans la colonne Y et commence à la ligne 7.
Lame 5 :
- La longueur de la lame 5 se trouve dans la colonne J et commence à la ligne 7.
- Le nombre de lames de 20 pour la lame 5 est dans la colonne Z et commence à la ligne 7.
- Le nombre de lames de 35 pour la lame 5 est dans la colonne AA et commence à la ligne 7.
- Le nombre de lames de 60 pour la lame 5 est dans la colonne AB et commence à la ligne 7.
Lame 6 :
- La longueur de la lame 6 se trouve dans la colonne K et commence à la ligne 7.
- Le nombre de lames de 20 pour la lame 6 est dans la colonne AC et commence à la ligne 7.
- Le nombre de lames de 35 pour la lame 6 est dans la colonne AD et commence à la ligne 7.
- Le nombre de lames de 60 pour la lame 6 est dans la colonne AE et commence à la ligne 7.
Lame 7 :
- La longueur de la lame 7 se trouve dans la colonne K et commence à la ligne 7.
- Le nombre de lames de 20 pour la lame 7 est dans la colonne AF et commence à la ligne 7.
- Le nombre de lames de 35 pour la lame 7 est dans la colonne AG et commence à la ligne 7.
- Le nombre de lames de 60 pour la lame 7 est dans la colonne AH et commence à la ligne 7.
Remarque spéciale pour la lame 7 :
- Pour la lame 7, il y a toujours un battement à prendre en compte en colonne AI, d'une valeur de 20, qui doit être déduit en premier de la longueur de la lame 7 pour calculer les autres quantités de lames de 20, 35 et 60.
Bien Cordialement,
En vous remerciant d'avance pour votre aide
Bonjour et bienvenu sue le forum
Tu n'aurai pas oublié le fichier?
A+ François
Bonjour,
Si j'ai effectivement oublié le fichier de référence, le voici en pièce jointe.
Bien Cordialement A.SEMAT
Bonjour,
C'est génial, c'est exactement ce que je cherchais à avoir.
Néanmoins, cela ne fonctionne pas pour la lame 7. Je pense que je n'ai pas été très limpide quant à la spécificité de la lame 7.
En réalité, pour la lame 7, le calcul doit être effectué de la même manière que pour les autres lames, à l'exception qu'il faut toujours tenir compte de la présence d'une lame B (dans la colonne AI, donc chaque cellule de la colonne AI doit contenir un 1) avant de procéder à la décomposition.
La lame B fait également 20.
Je te remercie pour l'aide que tu m'as apportée. Si tu pouvais effectuer ces modifications, cela me serait d'une grande aide.
Bonjour,
Merci pour les modifications apportées. Si vous pouviez ajouter ces deux points, ce serait super.
Lorsque je supprime l'ensemble des valeurs pour relancer le programme (dans le cas où je veux recalculer après une modification des longueurs des lames), la valeur "1" ne s'affiche pas dans la colonne AI.
Mon deuxième point concerne le fait que seule la décomposition de la ligne 7 pour la lame 7 est effectuée, les autres ne le sont pas. Comme je vais ajouter des données à ce fichier au fur et à mesure, et que j'aurai à renseigner de nombreuses lignes, est-il possible de faire comme pour les lames 1, 2, 3, 4, 5, et 6, de sorte que dès que je saisis une valeur dans la ligne, elle devienne active, et par conséquent, les calculs se fassent pour l'ensemble de la ligne ?
Bien Cordialement
A.SEMAT
bonjour,
le fichier que j'ai fourni, contient une formule qui gère la colonne AI. Mais voici une nouvelle version ou cette colonne est maintenant gérée par la macro.
pour 85 (65 en considérant la colonne AI), il n'est pas possible de la découper en sections de 20,35 et/ou 60. Quelles sont les valeurs attendues ?
Bonjour,
Autant pour moi, je n'avais pas fait attention, vous avez raison, dans ce cas, le programme ne doit pas fournir de valeurs.
Est-il possible de faire en sorte que dans ces situations, les cellules qui ont une incapacité s'affichent en rouge ou qu'il y ait un message d'erreur pour ces lignes ?
Bien Cordialement
A.SEMAT
re,
Bonjour,
Je te remercie pour l'aide que tu m'as apportée. Excellent travail.
Bien Cordialement
A.SEMAT