Bonjour,
Salut à tous ,je sollicite votre aide sur ce fichier ci-joint pour comprendre un peux
les macros Excel ( Mise à jour de la quantité en stock)
si vous pouvez me renvoyer le fichier dument programmé (Module) à faire fonctionner le bouton que j'ai préparé sur feuille "Menu"
http://www.cjoint.com/14nv/DKetGKR0AsA.htm
et encore merci
Cordialement
Donc, tu veux que la quantité d'un article dans la feuille stock soit diminué de la quantité du même objet présente dans la feuille menu ?
Donc la feuille menu est une sortie d'inventaire (vente, commande ou autre), et tu veux mettre à jour l'inventaire ?
On peut faire simple ou faire compliqué.
Si l'ordre des items du menu et de ta feuille stock reste toujours les mêmes, on peut faire du code très très basique et assigner directement un chiffre à un endroit moins un chiffre à un autre endroit.
Exemple :
Sub Bouton1_QuandClic()
sheets("stock").Range("E3").Value = sheets("stock").Range("E3").Value - sheets("Menu").Range("A9").Value
sheets("stock").Range("E4").Value = sheets("stock").Range("E4").Value - sheets("Menu").Range("A10").Value
sheets("stock").Range("E5").Value = sheets("stock").Range("E5").Value - sheets("Menu").Range("a11").Value
sheets("stock").Range("E6").Value = sheets("stock").Range("E6").Value - sheets("Menu").Range("A12").Value
sheets("stock").Range("E7").Value = sheets("stock").Range("E7").Value - sheets("Menu").Range("A13").Value
End Sub
C'est relativement fragile, si tu inverse l'ordre, ou si tu ajoutes une ligne, il faut que tu corrige la macro de ton bouton. Mais ca peut être fonctionnel.
Façon compliqué.
On peut faire des boucles sur ta feuille menu pour regarder chaque ligne, et ensuite à l'intérieur de la boucle, on boucle sur ton stock pour trouver la ligne correspondante et faire la soustraction.
Avantage certain, c'est dynamique, et on peut ajouter des lignes, l'ordre n'aura pas d'importance.
Inconvénient, c'est du code plus complexe et si tu veux changer quelque chose, tu devras te creuser un peu plus les méninges.
Sub Bouton1_QuandClic()
Dim compteur_menu As Integer
Dim compteur_stock As Integer
Dim derlig_menu As Integer
Dim derlig_stock As Integer
derlig_menu = Sheets("menu").Range("A" & Rows.Count).End(xlUp).Row
derlig_stock = Sheets("Stock").Range("A" & Rows.Count).End(xlUp).Row
For compteur_menu = 9 To derlig_menu
For compteur_stock = 3 To derlig_stock
If Sheets("Menu").Range("B" & compteur_menu).Value = Sheets("Stock").Range("B" & compteur_stock).Value Then
Sheets("Stock").Range("E" & compteur_stock).Value = Sheets("Stock").Range("E" & compteur_stock).Value - Sheets("Menu").Range("A" & compteur_menu).Value
End If
Next compteur_stock
Next compteur_menu
End Sub
Cet exemple boucle pour chaque ligne de Menu l'ensemble des lignes de stock et déduit l'inventaire s'il y a un match.
Si quelqu'un click deux fois le bouton par erreur, la déduction est faite deux fois.
Il serait peut-être bon de vider la feuille menu en même temps.
Et pour finir, voici le code avec l'ajout pour mettre à zéro la feuille menu et un petit msgbox après l'exécution du bouton.
Bonjour;
et encore merci PlacageGranby ,Pijaku aussi ,vous êtes vraiment serviable
c'est exactement ce que je cherchais
je suis un vieux gestionnaire de stock à l'ancienne (au stylo) vous avez vu juste c'est un exemple d'inventaire et je vais étonné mes collègues grâce à vous et encore merci et a bientôt.
question résolu