Mise en place d une gestion de stock
Bonjour a tous
Je suis dévutant en VBA et j'essai de mettre en place un base de donnée me permetant de gérer un stock.
Je vous expose mon problème. Un userform permet a un utilisateur de décrémenter un stock.
J'essai de trouver un code me permetant donc de pouvoir décrémenter mon stock sans avoir a utiliser l'imputbox de ce code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2:J70")) Is Nothing Then
SUITE InputBox("Entrer la valeur", "saisie")
End If
End Sub
Public Sub SUITE(Valeur As String)
If vbOK = MsgBox("Valider la saisie de " & Valeur & " en " & ActiveCell.Address(False, False), vbOKCancel) Then
ActiveCell.Offset(0, 9) = ActiveCell.Offset(0, 9) + Valeur
End If
End Sub
¨ou encore
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERROR
Dim Message As String, Valeur As Long
With Target
Select Case .Address(False, False)
Case Is = "A1"
GoTo SUITE
Case Else
Exit Sub
End Select
SUITE:
Application.EnableEvents = False
If .Address(False, False) = "A1" Then
Valeur = .Value
Message = "Valider la saisie de " & Valeur & " en " & .Address(False, False)
If MsgBox(Message, vbYesNo + vbDefaultButton2) = vbNo Then GoTo FIN
Range("B1").Value = Range("B1").Value + Valeur
End If
FIN: .Value = Empty
End With
Application.EnableEvents = True
Exit Sub
ERROR: MsgBox Err.Description: Resume FIN
End SubPour le premier code, il faut obligatoirement etre dans la feuill concerné et rep a limputbox pour que ca marche et dans mon cas j aimerai qu une fois la validation de mon userform effectué cela ce face automatiquement
Pour le 2 eme code, j ai réussi a l'adapter pour pas avoir de validation a saisir mais le pb c'est que je dois saisir manuellement toute les case sur lequel mon stock est décrémenté.
ce que j'aimerai :
Un code qui permet de selectionné n importe quel cellule de A1 a A90 et la place de D1 a D90. en l'incrémentant de sa valeur.
par exemple si je saisi 3 dans A3
La placer dans D3 remettre a zéro A3 et ainsi de suite. si je saisi désormé de nouveau dans A3 : 4 il affichera dans D3 : 7 et le tout sans dialogue (sans imputbox)
Bonjour
Essayes ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1:A90"), Target) Is Nothing And Target.Count = 1 Then
If IsNumeric(Target) Then
Target.Offset(0, 3) = Target.Offset(0, 3) + Target
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End If
End SubBonjour banzai 64 et merci de ta reponse aussi rapide
Ton code marche parfaitement le seul problème c'est que je vais chercher la valeur a incrémenter dans une autre feuille. je vais m'expliquer en prenant un exemple.
Je suis en feuille 1 je saisie une reférence et une quantité
En feuille 2 j ai toute mes references en fonction de la référence saisie en feuille 1, j'ai la quantité qui vien avec et qui s'incrémente si la meme reference est ressaisit a nouveau.
J'utilise la fonction : si(A$1=A2,A$2,0) pour rechercher la quantité saisi
Donc ma quantité ce met bien en face de la référence.
Le seul problème que j'ai c'est que avec ce code je suis obligé de resaisir manuellement la quantité pour que le stock s'incrémente.
Ex en feuille 1 par l'intermédiaire d'un userform je saisi une quantité et une référence.
En feuil 2 colonne A référence colonne B Quantité obtenu avec la fonction si Colonne C quantité que je resais actuellement manuellement (la ou ce situe le pb) Colonne D quantité totale ( égale a D+C)
Bonjour
Le mieux serait de joindre un fichier représentatif de ton fichier réel
Dans la feuille rob, un bouton est utiliser pour appeler un userform. Les données saisi vont dans history
(ne pas oublier de mettre le num se serie corespondant en dessous de assembly) ainsi, une fois la quantité saisi ainsi que la référence, les données sont envoyé a la feuil rob sur la colonne F. de la j aimerai que cette quantité soit copier et coller en G afin de pouvoir incrémenter mon stock avec le code que tu as pus me donner. Gspr vrmt k tu comprendras.
Le truc c k avant de commencer cette base il ne m'on pas donner toute les cartes en main donc j'ai du madapter au fur et a mesure...
Merci a toi benzai64 c'est exactement ca!!!