Bonjour,
Autant pour moi, j'ai oublier une ligne dans mon code ^^
Sheets("Liste des consommables").Range(PosRech).Offset(0, 3).Value = Stock
Je te remet le code complet :
Private Sub Worksheet_Change(ByVal Target As Range) 'Dès que la feuille change la macro se déclange
Dim PosRech, PosX, PosY, Ref As String
Dim Stock As Integer
If Target.Column = 4 Then 'On se concentre sur la colonne D
Quantite = InputBox("Quantité ?", "Quantité article")
Target.Offset(0, 1).Value = Quantite 'On change la valeur de la colonne quantité
PosRech = Sheets("Liste des consommables").Range("D2:D62").Find(Target.Value, , xlValues).Address 'on cherche dans la feuille1 la bonne désignation de l'article et on récupère son adresse
Stock = Sheets("Liste des consommables").Range(PosRech).Offset(0, 3).Value 'On récupère le stock de l'article qui se situe 3 fois à droite de ce dernier
Ref = Sheets("Liste des consommables").Range(PosRech).Offset(0, -2).Value
If MsgBox("C'est une entrée ?", vbYesNo, "Entrée ou sortie") = vbYes Then 'On détermine si c'est une entrée ou une sortie
Stock = Stock + Quantite
Target.Offset(0, -1).Value = "Entrée"
Else
Stock = Stock - Quantite
Target.Offset(0, -1).Value = "Sortie"
End If
Sheets("Liste des consommables").Range(PosRech).Offset(0, 3).Value = Stock
Target.Offset(0, -2).Value = Ref
Target.Offset(0, -3).Value = Format(Date, "MM/DD/YYYY") ' On écrit la date à laquelle l'opération ce passe
End If
End Sub