Transfert du Stock
Bonjour
Le formulaire fonctionne bien
Cependant, la quantité en stock ne met pas à jour l'état du stock
Vous constaterez que lors du transfert de l'inventaire entre les entrepôts, il transfère les données et ne met pas à jour l'inventaire.
(Transfert de stock entre entrepôts)
Salut,
il faudrait préciser qu'il s'agit de codes VBA et mettre dans ton profil ta version d'Excel parce qu'en ouvrant ton fichier, j'ai eu pas mal de messages d'erreur.
Private Sub MajInventaire()
Dim QS&, n&
With Worksheets("Stock")
flgAdd = 0
n = UBound(TblInv): lgS = 0: lgD = 0
GetLig ComboBox1, n, lgS: If lgS = 0 Then Exit Sub
GetLig ComboBox2, n, lgD: If lgD > 0 Then flgAdd = 1
If lgD = 0 Then
flgAdd = 0: lgD = n + 3
If lgD = 65000 Then
MsgBox "Le tableau en feuille Inventaire est plein !", 48
lgD = 0: Exit Sub 'on fait rien, et on sort de la sub !
End If
End If
Application.ScreenUpdating = 0: .Unprotect: QT = Val(Quantitetr)
With .Cells(lgS, 11) ' était (lgS, 3)
QS = .Value + QT: .Value = QS: stocktr = QS
End With
Application.EnableEvents = False
.Activate ' active la feuille
If flgAdd = 0 Then
' insère une ligne
.Rows("4:4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Unprotect
.Rows("5:5").Copy ' copie la ligne en dessous
.Rows("4:4").PasteSpecial xlPasteFormats ' colle le format
.Range("D5").Copy ' copie la cellule
.Range("D4").Select ' sélectionne la cellule
ActiveSheet.Paste ' colle (formule incluse)
Application.EnableEvents = True
lgD = 4
End If
With .Cells(lgD, 3)
If flgAdd = 0 Then
.Offset(, -2) = CB_Pièce.Text 'Code article
.Offset(, -1) = catetr 'Catégorie
.Offset(, 2) = Val(seuil) 'Seuil d'alerte
.Offset(, 3) = Desitr 'Descriptif
.Offset(, 4) = reftr 'Référence
.Offset(, 5) = unitr 'Unité de mesure
.Offset(, 6) = "Transfert" 'Observations
.Offset(, 9) = ComboBox2 'Magasin
QD = Val(.Value) + QT: .Value = QD 'Stock actuel
Else
.Offset(, 7) = .Offset(, 7) + Quantitetr '
Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) = Sheets("Stock").Range("d" & Me.ComboBox2.ListIndex + 4) + Me.Quantitetr.Value
Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) = Sheets("Stock").Range("d" & Me.ComboBox1.ListIndex + 4) - Me.Quantitetr.Value
End If
End With
.Protect: Application.ScreenUpdating = -1
End With
End Sub
Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) = Sheets("Stock").Range("d" & Me.ComboBox2.ListIndex + 4) + Me.Quantitetr.Value
Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) = Sheets("Stock").Range("d" & Me.ComboBox1.ListIndex + 4) - Me.Quantitetr.Value
Le problème est dans ce code
Bonjour
Le fichier fonctionne, mais la mise à jour de l'inventaire ne fonctionne pas. Quel est le problème ? Aidez-moi s'il vous plaît
Bonjour
Y a-t-il quelque chose dans ce dossier qui soit incompréhensible ou avons-nous besoin d’éclaircissements ?
If Me.OptEntrée = True Then
Sheets("Stock").Range("d" & Me.ComboBox1.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) - Me.Quantitetr.Value
Sheets("Stock").Range("d" & Me.ComboBox2.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) + Me.Quantitetr.Value
ElseIf Me.OptSortie = True Then
Sheets("Stock").Range("d" & Me.ComboBox1.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) + Me.Quantitetr.Value
Sheets("Stock").Range("d" & Me.ComboBox2.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) - Me.Quantitetr.Value
End IfTransférer la quantité de stock à l'entrepôt et mettre à jour le stock dans la cellule D
S'il vous plaît aidez-moi
Private Sub MajInventaire()
On Error Resume Next
Dim QS&, n&
With Worksheets("Stock")
flgAdd = 0
n = UBound(TblInv): lgS = 0: lgD = 0
GetLig ComboBox1, n, lgS: If lgS = 0 Then Exit Sub
GetLig ComboBox2, n, lgD: If lgD > 0 Then flgAdd = 1
If lgD = 0 Then
flgAdd = 0: lgD = n + 3
If lgD = 65000 Then
MsgBox "Le tableau en feuille Inventaire est plein !", 48
lgD = 0: Exit Sub 'on fait rien, et on sort de la sub !
End If
End If
Application.ScreenUpdating = 0: .Unprotect: QT = Val(Quantitetr)
With .Cells(lgS, 11) ' était (lgS, 3)
QS = .Value + QT: .Value = QS: stocktr = QS
End With
Application.EnableEvents = False
.Activate ' active la feuille
If flgAdd = 0 Then
' insère une ligne
.Rows("4:4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Unprotect
.Rows("5:5").Copy ' copie la ligne en dessous
.Rows("4:4").PasteSpecial xlPasteFormats ' colle le format
.Range("D5").Copy ' copie la cellule
.Range("D4").Select ' sélectionne la cellule
ActiveSheet.Paste ' colle (formule incluse)
Application.EnableEvents = True
lgD = 4
End If
With .Cells(lgD, 3)
If flgAdd = 0 Then
.Offset(, -2) = CB_Pièce.Text 'Code article
.Offset(, -1) = catetr 'Catégorie
.Offset(, 2) = Val(seuil) 'Seuil d'alerte
.Offset(, 3) = Desitr 'Descriptif
.Offset(, 4) = reftr 'Référence
.Offset(, 5) = unitr 'Unité de mesure
.Offset(, 6) = "ÊÍæíá" 'Observations
.Offset(, 9) = ComboBox2 'Magasin
QD = Val(.Value) + QT: .Value = QD 'Stock actuel
Else
.Offset(, 7) = .Offset(, 7) + Quantitetr '
End If
End With
If Me.ComboBox1.ListIndex = -1 Then
MsgBox " L 'emplacement n'est pas correct"
Me.ComboBox1.SetFocus
Exit Sub
End If
If Me.ComboBox2.ListIndex = -1 Then
MsgBox " L 'emplacement n'est pas correct"
Me.ComboBox2.SetFocus
Exit Sub
End If
If Me.OptEntrée = True Then
Sheets("Stock").Range("d" & Me.ComboBox1.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) - Me.Quantitetr.Value
Sheets("Stock").Range("d" & Me.ComboBox2.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) + Me.Quantitetr.Value
ElseIf Me.OptSortie = True Then
Sheets("Stock").Range("d" & Me.ComboBox1.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) + Me.Quantitetr.Value
Sheets("Stock").Range("d" & Me.ComboBox2.ListIndex + 4) = Sheets("Stock").Range("d" & Me.CB_Pièce.ListIndex + 4) - Me.Quantitetr.Value
End If
.Protect: Application.ScreenUpdating = -1
End With
End SubBonjour
Si vous souhaitez transférer l'inventaire de la Combo Box 1 vers la Combo Box 2 dans Sheet Stock
Existe-t-il un code qui fait cela ou est-ce difficile à mettre en œuvre ?
Si nous supposons qu'il y a 20 cartons dans l'entrepôt principal pour le produit 1 et que 5 cartons sont transférés, le solde de l'entrepôt principal sera de (15) cartons.
Quant au magasin 1, il y a une quantité de 8 cartons pour le produit 1, et il a été transféré du magasin principal 5 pour avoir un solde de cartons du magasin 1 (13).
s'il vous plaît, aidez