Bonjour,
J'avais ouvert une discussion à propos d'un fichier :
Minick m'avait donné la solution (merci encore au passage).
Mais le destinataire du fichier a encore compliqué les choses.
Normalement, quand on validait une des deux quantités et que le strock restant est égal à zéro, ça exécute la macro. Il veut que si les prix de vente ne sont pas remplis, la macro ne s'exécute pas ; c'est réglé.
Il veut ensuite que si les cellules quantité vendue sont remplies mais qu'il reste encore du stock, la cellule quantité vendue 1 reprenne la somme des 2 quantités venues et que le prix de vente 1 reprenne la moyenne des 2 prix de vente (Qté vendue 1 * Prix de vente 1 + Qté Vendue 2 * Prix de vente 2) / Qté vendue 1 + Qté vendue 2).
Tout ça pour libérer de la place en effaçant les cellules Qté vendue 2 et prix de vente 2 (parce qu'il ne veut pas un tableau trop long avec Qté vendu 1..2..3..4).
Ce problème est aussi réglé, mais l'exécution du calcul est long et l'affichage est bizarre, comme s'il excel bouclait sur toutes les lignes.
Voici le code qui exécute le calcul :
Pour voir ce que ça fait, je joins le fichier avec des petites explications.
Merci et bonne journée.
J'avais ouvert une discussion à propos d'un fichier :
HTML:
Je suis en train de faire une petite macro pour un ami.
Sur un tableau dans la première feuille du classeur, il a un résultat en colonne O.
Il s'agit du stock restant qui se calcul avec la quantité totale (colonne G) moins les quantités vendues en colonne J et L.
Il voulait que si la quantité restante (en colonne O) est égale à zéro, la ligne soit recopiée à la fin d'un tableau sur la deuxième feuille, puis que la ligne recopiée soit supprimée dans la première feuille.
J'ai pensé faire la macro avec l'évènement Change, lorsqu'il rentre une quantité vendue en colonne J ou L.
La macro s'exécute bien, mais j'ai une erreur d'exécution 424 (Objet requis).
Les lignes en couleur rouge sont surlignées
Mais le destinataire du fichier a encore compliqué les choses.
Normalement, quand on validait une des deux quantités et que le strock restant est égal à zéro, ça exécute la macro. Il veut que si les prix de vente ne sont pas remplis, la macro ne s'exécute pas ; c'est réglé.
Il veut ensuite que si les cellules quantité vendue sont remplies mais qu'il reste encore du stock, la cellule quantité vendue 1 reprenne la somme des 2 quantités venues et que le prix de vente 1 reprenne la moyenne des 2 prix de vente (Qté vendue 1 * Prix de vente 1 + Qté Vendue 2 * Prix de vente 2) / Qté vendue 1 + Qté vendue 2).
Tout ça pour libérer de la place en effaçant les cellules Qté vendue 2 et prix de vente 2 (parce qu'il ne veut pas un tableau trop long avec Qté vendu 1..2..3..4).
Ce problème est aussi réglé, mais l'exécution du calcul est long et l'affichage est bizarre, comme s'il excel bouclait sur toutes les lignes.
Voici le code qui exécute le calcul :
Code:
ElseIf Target.Column = 12 And Range("O" & Target.Row).Value > 0 Then
Range("K" & Target.Row).Value = (Range("J" & Target.Row).Value * Range("K" & Target.Row).Value + Range("L" & Target.Row).Value _
* Range("M" & Target.Row).Value) / (Range("J" & Target.Row).Value + Range("L" & Target.Row).Value)
Range("J" & Target.Row).Value = Range("J" & Target.Row).Value + Range("L" & Target.Row).Value
Range("L" & Target.Row).ClearContents
Range("M" & Target.Row).ClearContents
Merci et bonne journée.