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 If

Transfé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 Sub

Bonjour

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

Rechercher des sujets similaires à "transfert stock"