Soustraction avec sauvgarde de la nouvelle valeur

Bonjour à toutes et à tous,

Je travail actuellement sur un projet logistique,

Dans le cadre de la gestion du nombre de colis restant à traiter, j'aimerais pouvoir entrer une valeur (le nombre de colis) dans une cellule X, qu'elle se soustrait à une autre situé dans une cellule Y et quelle garde cette valeur comme référence pour la prochaine soustraction (à partir de la cellule X possédant une nouvelle valeur.

Je m'excuse si cette question a déjà été posé mais après plusieurs heures de recherche, je n'ai rien trouvé de concluant,

Ci-joint un fichier EXCEL pour mieux comprendre,

27forumxlsx.xlsx (9.13 Ko)

Merci d'avance pour vos réponses,

Cordialement,

PLUMEA

Bonjour PLUMEA,

Je te retourne ton fichier modifié :

44forum.xlsm (13.77 Ko)

Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

dhany

Bonjour,

Peut-être une partie de réponse si le fait de lancer une macro à partir d'un bouton ne te dérange pas...

Sub colis()
Dim a As Long
Dim b As Long
a = Range("D5").Value
b = InputBox("Quel est le nombre de colis traité?", "Nombre")
Range("b11").Value = Range("B9").Value - a - b
Range("D5").Value = b
End Sub

Avec le fichier en exemple

15forum-v1.xlsm (16.48 Ko)

Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$5" Then
        Application.ScreenUpdating = False
        Me.Range("B11") = Me.Range("B11") - Target
        If Me.Range("B11") < 0 Then Me.Range("B11") = 0
    End If
End Sub

Procédure à placer dans le module de la feuille.

Mettre en B11 au départ le total figurant en B9. A chaque nombre tapé en D5, la macro le déduira automatiquement de B11 et placera le résultat en B11, tant que le résultat ne devient pas inférieur à 0...

Cordialement.

Merci à tous pour vos réponses,

La solution qui correspond le plus à ce que je recherche est celle de dhany.

Pourais-tu m'expliquer comment tu réalises cette manip ?

Cordialement,

PLUMEA

Le code VBA est celui de "Feuil1" :

screen

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

Tu dois faire pareil dans ton vrai fichier.


Ajout : ce sera mieux si on évite les valeurs négatives, donc avec :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .Count > 1 Then Exit Sub
    If .Address <> "$D$5" Then Exit Sub
    If IsNumeric(.Value) Then _
      [B11] = WorksheetFunction.Max(0, [B11] - .Value)
  End With
End Sub

Nouveau fichier (avec ce même code VBA) :

17forum.xlsm (14.16 Ko)

dhany

Merci,

je réussi à intégrer le VBA dans mon fichier d'origine,

Je découvre depuis hier le VBA et je ne comprend pas encore grand chose,

Je vois que vous vous y connaissez très bien, je me permet donc de vous poser quelques autres questions avec cette fois avec un fichier XCEL plus complet de mon projet.

Je vous explique le contexte : Nous recevons un certain nombre de conteneur de l'étranger avec souvent plus de 100 références (environ 500 colis),

Il faut trier l'ensemble de ses colis par référence et autant dire qu'il faut avoir une très bonne mémoire pour se rappeler où est la référence X et où est la référence Y, j'aimerais donc apporter une aide informatique aux opérateurs terrain.

La feuille TRI du fichier ci-joint permet d'affecter une dizaine de référence sur une palette (informatiquement) et par le biais du GTIN de retrouver dans quelle palette ce trouve la référence que j'ai précédemment affectée,

J'aimerais tout d'abord pouvoir scanner plusieurs GTIN à la suite sans que EXCEL me fasse descendre d'une cellule. Pour finir j'aimerais que pour chaque scann de GTIN de la case B5, un colis soit décrémenté, (avec le VBA que dhany, cela fonctionne mais je n'arrive pas à comprendre comment faire pour que cela soit le cas pour toutes les palettes)

14tri-pgi-forum.xlsx (89.76 Ko)

Pensez-vous que cela est réalisable ?

Merci d'avance pour vos réponses,

Cordialement,

PLUMEA

Je t'ai pas oublié : c'est plus long que prévu ; je travaille dessus.

dhany

Pas de problème dhany,

Vous m'apportez déjà une très grande aide,

Cordialement,

PLUMEA

Peux-tu me préciser ce qu'il faut décrémenter : c'est bien la quantité attendue ? ou c'est le nombre de colis attendu ?

aïe ! je suis bloqué !!! car dans les 2 cas, la cellule contient une formule !

je peux décrémenter un nombre, pas une formule !

ici, décrémenter signifie enlever 1

dans ton exemple, c'est en feuille "TRI", cellules B18 et B19.

dhany

Oui ici décrémenter signifie 1 donc je pense que si nous introduisons 1 dans le VBA, la référence à une case n'est plus utile

PLUMEA

Il faut décrémenté le nombre de colis attendu de 1 quand le cade GTIN est flashé

Cordialement,

PLUMEA

ok donc c'est le Nombre de colis attendu, cellule B19 ; et ta réponse précédente signifie que je peux enlever la formule pour y saisir par exemple 10, qui sera décrémenté de 1 à chaque fois ; exact ? j'ai supposé que oui, et j'ai supprimé le contenu de toutes les lignes "Nombre de colis attendu" : y'a plus de formules ; et j'ai mis 10 en B19 (c'est juste un exemple).

dhany

Les équipes ont besoin d'un visuel avec le nombre de colis attendu qui simplement récupérer dans la packing liste

La formule de la ligne "Nombre de colis attendue" ne peut donc pas être modifié mais une ligne supplémentaire peut y être ajoutée

PLUMEA

Avec votre VBA de tout à l'heure, j'ai simplement mis dans la cellule en dessous de A19 "Nombre de colis restant" et la formule suivant en B20 : =B19

Certes dès le premier flash, la formule disparaît mais ce n'est pas important car nous utiliserons se fichier avec des nouvelles packing list et donc quantités chaque semaine

PLUMEA

merci pour tes nouvelles infos ; je vais travailler la suite avec celles-ci.

[quote="À 11:51, tu"]J'aimerais tout d'abord pouvoir scanner plusieurs GTIN à la suite sans que EXCEL me fasse descendre d'une cellule.[/quote]

Si pour tes scans dans une cellule c'est comme pour la saisie dans une cellule, alors cette option pourra sûrement t'aider :

selection sensbas

si ça a marché, tant mieux ! sinon, y'a p't'être une option dans l'interface du driver de la douchette ?


Voici la nouvelle version du fichier :

7tri-pgi-forum.xlsm (98.89 Ko)

À l'ouverture du fichier, tu es sur la feuille "TRI", et la cellule active est B4, qui contient déjà ce GTIN : 541531232136468

Remarque les nouvelles lignes ajoutées "Nombre de colis restant" ; j'ai mis, par exemple : 10 en B20

Toujours en étant en B4, appuie sur les touches F2 puis EntréeB20 est décrémenté de 1 à chaque fois

➯ ça descend de 10 à 0 ... mais ça s'arrête là : ça descend pas plus !

Je te laisse faire tous les tests nécessaires, et normalement, ça devrait marcher aussi bien pour les autres colonnes.

Alt F11 pour voir le code VBA ; il a beaucoup changé, et il est bien plus long !

Si besoin, n'hésite pas à demander une autre adaptation.

Merci de me dire si ça te convient.

dhany

GENIAL,

Merci beaucoup, je fais des test et je vous recontacte ultérieurement,

Cordialement,

PLUMEA

Alors A+

dhany

J'abuse peut être un peu mais pourriez-vous me faire part de la manipulation pour copier le VBA parceque malgré que tout soit comme dans le fichier que vous m'avez retourné, je n'y arrive pas

Merci d'avance,

Cordialement,

PLUMEA

Rechercher des sujets similaires à "soustraction sauvgarde nouvelle valeur"