Programmation d'une multiplication par VBA

Bonjour,

Je suis nouvelle sur votre forum.Je débute dans la programmation VBA.

Pour mon travail , je dois améliorer ce fichier.

Et je bloque sur des programmations , je souhaiterai que:

  • à partir de la case I17 = G17*M16.
  • case I16, la moyenne de la colonne
  • mettre le mini/ max en J27/J28

En espérant que je ça soit clair avec le fichier sur lequel je travail.

Merci pour votre aide

Bonjour lolo13,

je te retourne ton fichier modifié :

Ctrl e ➯ travail effectué !


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

@lolo13

pas de retour ? si ton sujet en résolu, clique sur près de (dans le coin haut droit du post); ça permet aussi de clôturer le fil de la discussion (toi seule peut le faire, car c'est toi qui a créé ce sujet).

dhany

Bonsoir dhany

Je suis navré , je n'ai pu te répondre plutôt.

Je viens d'essayer le fichier, lorsque je crée un nouveau bulletin d'analyse autocontrôle, je remplis mes cases des colonnes E,F : le calcul se fait dans la colonne G mais rien ne se passe dans la colonne I?

De plus si je viens à rajouter des lignes de contrôles , est ce que ta programmation prend en compte dans la moy/mini/max les valeurs supplémentaires ?

J'ai essayé de comprendre ton programme mais j'ai encore du chemin à faire

Merci en tous cas pour ton aide

Bonsoir lolo13,

c'est pas automatique : tu dois saisir la densité en M16 puis faire Ctrl e ➯ résultats en I16:I26 ; J27 et J28 ; note que si tu effaces la densité de M16 et que tu fais Ctrl e, tous les résultats sont effacés ; car sans densité, aucun résultat ne peut être déterminé.

dhany

ajout : mon code VBA n'est pas adapté pour un ajout de lignes car avec tes 2 lignes MIN et MAX, je pensais que c'était fixe et que tu n'allais plus ajouter de lignes ; je vais faire une adaptation pour un nombre de lignes variable.

dhany

j'ai effectué Ctrl e mais rien ne se passe, j'ai bien renseigné la densité.

Je me permet de te demander si ce n'est pas possible de l'automatisé ? car ce fichier va être utilisé par des personnes sur des lignes de production et ils ont besoin de valeurs instantanés.

De plus nous avons certains personnels qui ne maîtrisent pas les basics de excel , je ne peut leur demander de penser à cette étape afin de connaitre leur résultats.

Merci

alors je vais essayer ça aussi.

dhany

ça va prendre un bon moment car c'est pas simple ; je posterai ma solution dès qu'elle sera prête.

dhany

nouvelle version :

en M16, saisis 5 et appuie sur la touche Entrée ➯ ces résultats :

screen

(si tu les as pas, alors tes macros doivent être désactivées ! )


attention : si tu effaces M16 avec Suppr, cette touche n'est pas détectée ; donc pour effacer les résultats :

saisis 0 puis Entrée ; ensuite, efface le 0 avec Suppr


pour la prise en compte de lignes supplémentaires, c'est fait : tu vas pouvoir en ajouter autant que tu veux !

(ou presque, car ligne maxi = 1 048 576 )

dhany

Ça fonctionne super.

Je vais faire différents essais afin de vérifier que je n'ai pas de bug en production.Je te tiens au courant.

Par contre, le fichier rame de plus en plus , pense tu qu'il y a trop de programmation dans ce fichier.....

Merci beaucoup pour ton aide, cela m'a fait gagner un gain de temps!!!!

Bonne soirée

merci pour ton retour ! mais pour ton fichier qui rame de plus en plus, j'ai pas d'idée.

bonne soirée à toi aussi !

dhany

Bonsoir

Dhany, j'ai essayé le fichier ce jour en production , il a été apprécié pas mes équipes!

J'ai réalisé plusieurs essais en rajoutant et retirant des lignes , la moyenne , min/max fonctionnent très bien.

Par contre , lors de rajout de lignes il faut retaper la valeur en M16 afin que les valeurs de la colonne I se mettent à jour. C'est possible d'éviter cela ?

Merci par avance

Bonsoir lolo13,

Lors de rajout de lignes il faut retaper la valeur en M16 afin que les valeurs de la colonne I se mettent à jour.

C'est possible d'éviter cela ?

j'vois pas comment, mais un autre intervenant aura p't'être une idée ?

dhany

Bonjour lolo13,

ce nouveau fichier t'aidera peut-être :

comme avant : a) y'aura pas de résultats si M16 est vide ou contient 0 ; or ici, en M16 : 5,000ok ; b) ça réagit à un changement de M16 ; mais en plus, si tu saisis une masse à partir de G17 et en dessous, ça appelle aussi la sub Volumes()

exemple : en G26, saisis 56 ➯ affichage des résultats

ainsi, ça ne réagit pas lors d'insertion de nouvelles lignes mais si tu y saisis une masse ; mais attention : pour chaque nouvelle ligne, par exemple 27 : n'oublie pas de fusionner G27:H27 puis I27:J27 (comme c'est déjà fait pour tes autres lignes), sinon le résultat de la ligne ne sera pas au bon emplacement : en H27 au lieu de I27.

à te lire pour avoir ton avis.

dhany

Bonsoir dhany

Super!!!! Ça fonctionne

Un grand merci pour ton aide et ton temps.

Bonne soirée .

A bientôt

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne soirée à toi aussi !

dhany

Rechercher des sujets similaires à "programmation multiplication vba"