Probleme de résultat

brown

XLDnaute Nouveau
Bonsoir,

Voilà mon problème, j'ai fais un tableau pour gérer les entrées et les sorties d'un stock.
J'ai un macro qui efface les cellules D et E une fois rempli... A la première ligne cela fonctionne bien si je rentre 100 en D3 j'ai bien 100 en G3, mais à partir de la deuxième ligne ça ne fonctionne plus si je rentre 100 en D4 j'ai 300 en G4... 100 en D5 donne 500 en D5....
Ci joint le tableau et ci dessous le macro.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("E3").Value = "" Then
Range("D3").ClearContents
End If
If Range("D3").Value = "" Then
Range("E3").ClearContents
End If
If Range("E4").Value = "" Then
Range("D4").ClearContents
End If
If Range("D4").Value = "" Then
Range("E4").ClearContents
End If
If Range("E5").Value = "" Then
Range("D5").ClearContents
End If
If Range("D5").Value = "" Then
Range("E5").ClearContents
End If
If Range("E6").Value = "" Then
Range("D6").ClearContents
End If
If Range("D6").Value = "" Then
Range("E6").ClearContents
End If
If Range("E7").Value = "" Then
Range("D7").ClearContents
End If
If Range("D7").Value = "" Then
Range("E7").ClearContents
End If
If Range("E8").Value = "" Then
Range("D8").ClearContents
End If
If Range("D8").Value = "" Then
Range("E8").ClearContents
End If
If Range("E9").Value = "" Then
Range("D9").ClearContents
End If
If Range("D9").Value = "" Then
Range("E9").ClearContents
End If
If Range("E10").Value = "" Then
Range("D10").ClearContents
End If
If Range("D10").Value = "" Then
Range("E10").ClearContents
End If
If Range("E11").Value = "" Then
Range("D11").ClearContents
End If
If Range("D11").Value = "" Then
Range("E11").ClearContents
End If
If Range("E12").Value = "" Then
Range("D12").ClearContents
End If
If Range("D12").Value = "" Then
Range("E12").ClearContents
End If
If Range("E13").Value = "" Then
Range("D13").ClearContents
End If
If Range("D13").Value = "" Then
Range("E13").ClearContents
End If
If Range("E14").Value = "" Then
Range("D14").ClearContents
End If
If Range("D14").Value = "" Then
Range("E14").ClearContents
End If
If Range("E15").Value = "" Then
Range("D15").ClearContents
End If
If Range("D15").Value = "" Then
Range("E15").ClearContents
End If
If Range("E16").Value = "" Then
Range("D16").ClearContents
End If
If Range("D16").Value = "" Then
Range("E16").ClearContents
End If
If Range("E17").Value = "" Then
Range("D17").ClearContents
End If
If Range("D17").Value = "" Then
Range("E17").ClearContents
End If
If Range("E18").Value = "" Then
Range("D18").ClearContents
End If
If Range("D18").Value = "" Then
Range("E18").ClearContents
End If
If Range("E19").Value = "" Then
Range("D19").ClearContents
End If
If Range("D19").Value = "" Then
Range("E19").ClearContents
End If
If Range("E20").Value = "" Then
Range("D20").ClearContents
End If
If Range("D20").Value = "" Then
Range("E20").ClearContents
End If
If Range("E21").Value = "" Then
Range("D21").ClearContents
End If
If Range("D21").Value = "" Then
Range("E21").ClearContents
End If
If Range("E22").Value = "" Then
Range("D22").ClearContents
End If
If Range("D22").Value = "" Then
Range("E22").ClearContents
End If
If Range("E23").Value = "" Then
Range("D23").ClearContents
End If
If Range("D23").Value = "" Then
Range("E23").ClearContents
End If
If Range("E24").Value = "" Then
Range("D24").ClearContents
End If
If Range("D24").Value = "" Then
Range("E24").ClearContents
End If
If Range("E25").Value = "" Then
Range("D25").ClearContents
End If
If Range("D25").Value = "" Then
Range("E25").ClearContents
End If
If Range("E26").Value = "" Then
Range("D26").ClearContents
End If
If Range("D26").Value = "" Then
Range("E26").ClearContents
End If
If Range("E27").Value = "" Then
Range("D27").ClearContents
End If
If Range("D27").Value = "" Then
Range("E27").ClearContents
End If
If Range("E28").Value = "" Then
Range("D28").ClearContents
End If
If Range("D28").Value = "" Then
Range("E28").ClearContents
End If
If Range("E29").Value = "" Then
Range("D29").ClearContents
End If
If Range("D29").Value = "" Then
Range("E29").ClearContents
End If
If Range("E30").Value = "" Then
Range("D30").ClearContents
End If
If Range("D30").Value = "" Then
Range("E30").ClearContents
End If
If Range("E31").Value = "" Then
Range("D31").ClearContents
End If
If Range("D31").Value = "" Then
Range("E31").ClearContents
End If
If Range("E32").Value = "" Then
Range("D32").ClearContents
End If
If Range("D32").Value = "" Then
Range("E32").ClearContents
End If
If Range("E33").Value = "" Then
Range("D33").ClearContents
End If
If Range("D33").Value = "" Then
Range("E33").ClearContents
End If
If Range("E34").Value = "" Then
Range("D34").ClearContents
End If
If Range("D34").Value = "" Then
Range("E34").ClearContents
End If

If Range("E36").Value = "" Then
Range("D36").ClearContents
End If
If Range("D36").Value = "" Then
Range("E36").ClearContents
End If
If Range("E37").Value = "" Then
Range("D37").ClearContents
End If
If Range("D37").Value = "" Then
Range("E37").ClearContents
End If


End Sub

Merci de votre aide!
 

Pièces jointes

  • STOCK TEST.xls
    47 KB · Affichages: 50
  • STOCK TEST.xls
    47 KB · Affichages: 50
  • STOCK TEST.xls
    47 KB · Affichages: 51
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Probleme de résultat

Bonjour et bienvenu sur le forum Brown,

Deux bonnes nouvelles :
-> ta macro n'est pour rien responsable de tes soucis
-> ta macro de 40 milles lignes peut-être remplacé par ces 10 lignes. Résultat identique mais beaucoup plus simple et rapide à lire et comprendre.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)


For i = 3 To 34
------If Range("E" & i).Value = "" Then
------Range("D" & i).ClearContents
------End If

------If Range("D" & i).Value = "" Then
------Range("E" & i).ClearContents
------End If
Next i

End Sub

L'erreur est situé dans ta feuille excel en elle même. C'est tes formules excel situé sur l'onglet qui sont erronées.

Pourquoi vouloir effacer les données saisies en "entrée" colonne D et "sortie" colonne E?
-> comptablement parlant, tu dois normalement avoir besoin de conserver l'historique de toutes tes entrées et sorties. Non?
-> d'autant plus que c'est pour recopier puis conserver l'historique dans ta colonne masqué F.

Pour information :
-> l'ensemble de ton tableau concerne le stock d'un produit?
-> ou il y a un produit différent sur chaque ligne?

Bonne nuit
 

Excel-lent

XLDnaute Barbatruc
Re : Probleme de résultat

Re-bonsoir,

Concernant ton soucis de résultat erroné, si tu as toujours besoin d'aide peux-tu donner une exemple concret? Et préciser si une ligne égale un produit, ou si l'ensemble du tableau est pour un seul produit.

Pour information :
-> utilise le moteur de recherche, il y a déjà plein d'exemple de gestion de stock sur le forum.
-> un tableau de gestion de stock comporte normalement les colonnes :
------* Date (+ heure parfois)
------* Stock initial (stock au début)
------* Entrée (produits achetés)
------* Sortie (produits vendus)
------* Stock final (stock à la fin en tenant compte du stock final de la dernière fois + l'entrée du jour - la sortie du jour)

Chacune subdivisée de la façon suivante : Quantité, prix unitaire, Montant total

Ensuite il te reste à choisir une méthode de calcul parmi les deux suivantes :
-> CUMP
-> FIFO (méthode appelé en anglais "Firt In - First Out", appelé en français "Premier entrée, premier sortie")

A+
 

brown

XLDnaute Nouveau
Re : Probleme de résultat

Bonjour Excel-lent,
Merci de votre réponse, alors concernant l'effacement des cellules c'est tout simplement que chaque ligne représente un article et que chaque article peu sortir plusieurs fois dans le mois.... Exemple ce mois-ci la première semaine je rentre 100 articles dans D3, puis dans cette même semaine j'en sors 50 en E3, la semaine suivante j'en sors 25 en E3 et j'en rentre 100 en D3.... d’où mon intérêt à ce que les cellules se vides ..... En fait ce tableau c'est juste pour avoir un stock au jour le jour ...
j'espère que c'est plus parlant.

En tout cas merci pour le macro je vais l'essayer de suite.
 

brown

XLDnaute Nouveau
Re : Probleme de résultat

RE,

j'ai essayé le macro, il fonctionne nickel merci encore, par contre j'ai toujours le même problème concernant le résultat.
Si je rentre en D3 100 j'ai bien 100 en stock G3 puis si je sors 50 en E3 cela me donne bien 50 en stock G3.
A partir de la deuxième ligne ça se corse car si je rentre 100 en D4 cela me donne 300 en stock G4 puis si je sors 50 en E4 cela donne 150 en stock G4. 100 en D5 donne 500 en G5 puis si on enlève 50 ça donne 250 en stock G5.... je n'arrive pas à comprendre pourquoi les résultats de la colonne G sont erroné.

Voici les formules que j'utilise;

D est le nombre de produit que je rentre (nombre variable)

E est le nombre de produit que je sors (nombre variable)

F est la Somme de ce que j'ai en stock + ce que je rentre " =SOMME(Dx+Gx)" .Pour ce calcul, j'ai du activer le calcul itératif avec Nb maximal d'itérations: 1 et l'écart maximal: 1

G est la Somme de ce que j'ai en stock - ce que je sors " =SOMME(Fx-Ex) " .Cette colonne représente mon stock réel.

Une fois le tout fonctionnel, la colonne F sera masquée et la colonne G sera verrouillée.
Par la suite, j'envisage d'automatiser le remplissage de la colonne C (date) lorsque l'on rentre une valeur dans la colonne D ou E.


Merci pour votre aide pour mon soucis de résultat.
 

brown

XLDnaute Nouveau
Re : Probleme de résultat

J'ai essayé avec =Dx-Ex+Gx la première ligne fonctionne nickel mais à partir de la seconde c'est toujours erroné comme avec les autres formules... ce que je n'arrive pas à comprendre c'est que non seulement le résultat est erroné mais en plus ça n'affiche que des impaires soit 1 - 3 - 5...
 

brown

XLDnaute Nouveau
Re : Probleme de résultat

Encore merci de votre réponse je voudrai préciser que chaque ligne correspond à un article différent donc ne doit pas avoir de lien avec les autres résultats...
En utilisant la formule =D3-E3 pour G3 , si je rentre X en D3 il n'y a rien qui s'affiche en G3
Puis en mettant la formule =D4-E4+G4-1, j'ai 65 qui s'affiche en G4 alors que je n'ai rien mis ni en D4 ni en E4.
Si je clique sur une quelconque cellule de la feuille, le résultat en G4 augmente...

Est ce que le problème peut être du au paramétrage de la feuille?

merci
 

Excel-lent

XLDnaute Barbatruc
Re : Probleme de résultat

Bonsoir Brown, le fil,

Voici ci-joint une autre approche technique, mais avec un résultat visuel identique à tes envies et un résultat juste ;)

Comme tu peux le voir dans la pièce jointe, il n'y a plus aucune formule sur ta feuille excel, tout se passe au niveau de la macro.

Bonne fin de soirée
 

Pièces jointes

  • STOCK TEST.xls
    42 KB · Affichages: 38
  • STOCK TEST.xls
    42 KB · Affichages: 40
  • STOCK TEST.xls
    42 KB · Affichages: 38

Discussions similaires

Réponses
2
Affichages
545

Statistiques des forums

Discussions
312 103
Messages
2 085 311
Membres
102 860
dernier inscrit
fredo67