Soustraction avec sauvgarde de la nouvelle valeur Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 17 mai 2018, 10:28

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,
FORUMxlsx.xlsx
(9.13 Kio) Téléchargé 16 fois
Merci d'avance pour vos réponses,

Cordialement,

PLUMEA
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'083
Appréciations reçues : 695
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 17 mai 2018, 10:38

Bonjour PLUMEA,

:bv:

Je te retourne ton fichier modifié :
FORUM.xlsm
(13.77 Kio) Téléchargé 17 fois
Si besoin, tu peux demander une adaptation.
Merci de me dire si ça te convient.

dhany
1 membre du forum aime ce message.
Avatar du membre
besoin_d_aide
Membre fidèle
Membre fidèle
Messages : 337
Appréciations reçues : 29
Inscrit le : 16 mai 2018
Version d'Excel : 2010 fr, 2013 fr, 2016 fr

Message par besoin_d_aide » 17 mai 2018, 10:40

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
FORUM v1.xlsm
(16.48 Kio) Téléchargé 10 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 17 mai 2018, 10:46

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.
1 membre du forum aime ce message.
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 17 mai 2018, 11:10

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
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'083
Appréciations reçues : 695
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 17 mai 2018, 11:27

Le code VBA est celui de "Feuil1" :
Screen.jpg
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) :
FORUM.xlsm
(14.16 Kio) Téléchargé 11 fois
dhany
1 membre du forum aime ce message.
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 17 mai 2018, 11:51

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)
Tri PGI FORUM.xlsx
(89.76 Kio) Téléchargé 12 fois
Pensez-vous que cela est réalisable ?

Merci d'avance pour vos réponses,

Cordialement,

PLUMEA
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'083
Appréciations reçues : 695
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 17 mai 2018, 13:03

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

dhany
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 17 mai 2018, 13:07

Pas de problème dhany,

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

Cordialement,

PLUMEA
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 7'083
Appréciations reçues : 695
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 17 mai 2018, 13:10

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 !  ::( :cry:
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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message