XL 2010 Demande de quantité d'un produit dans un magasin spécifique selon la date la plus ancienne

Mody200

XLDnaute Occasionnel
Bonsoir
pouvez-vous m'aider
je suis coincé

d'abord
Je souhaite que lorsque je sélectionne le code 100 sur ce produit, affiche la date de stock la plus ancienne, stocktr
Lorsque le stock minimum est nul, l'article est déplacé à la date suivante avec la dernière quantité de stock pour cet article.
VB:
Sheets("Stock").Activate
    On Error Resume Next
   'ComboBox2.Clear

Me.stocktr.Enabled = False
  Quantitetr = ""
   catetr = "": stocktr = "": TextBox1 = ""
   With ComboBox1
     ' .Clear
      If CB_Pièce = "Entrez le code produit" Then
         .AddItem "Du magasin": .ListIndex = 0: Exit Sub
      End If
      Dim i&
      For i = 1 To UBound(TblInv)
         If TblInv(i, 1) = CB_Pièce.Text Then
            .AddItem TblInv(i, 5)
            If catetr = "" Then catetr.Text = TblInv(i, 2)
        
            If stocktr = "" Then stocktr = TblInv(i, 4)
If Me.OptionButton1 = True Then
       If TextBox1 = "" Then TextBox1 = ""
ElseIf Me.OptionButton2 = True Then
    If TextBox1 = "" Then TextBox1 = Format(TblInv(i, 9), "DD/MM/YYYY")
End If

        End If
      Next i
      .ListIndex = 0
   End With
Me.stocktr.Enabled = False
Quantitetr.SetFocus
Compress_٢٠٢٤٠٥١٧_٠٩٢٤٢١_1397.jpg
 

Pièces jointes

  • sell-the-first-quantity-the-oldest-production-expiration-date2-vnob(1).xlsm
    139.7 KB · Affichages: 10
Dernière édition:

Mody200

XLDnaute Occasionnel
Bonjour,Oneida
Ce qui est requis en cas de vente lorsque je choisis le code produit, qui est 100, et que je choisis le nom du magasin, qui est un magasin, vient avec la date minimale dans le cas où la quantité est supérieure à zéro, et en dans le cas où la quantité est nulle, elle vient avec la date suivante, sachant que le processus d'achat aura des puissances différentes avec le code produit, par exemple 100 pour un magasin spécifique.

J'espère avoir réussi à clarifier ce qui est requis

Compress_٢٠٢٤٠٥١٧_٠٩٣٦٤٠_0073.jpg


Code:
Private Sub CB_Pièce_Change()
Sheets("Stock").Activate
    On Error Resume Next
   'ComboBox2.Clear

Me.stocktr.Enabled = False
  Quantitetr = ""
   catetr = "": stocktr = "": TextBox1 = ""
   With ComboBox1
     ' .Clear
      If CB_Pièce = "Entrez le code produit" Then
         .AddItem "Du magasin": .ListIndex = 0: Exit Sub
      End If
      Dim i&
      For i = 1 To UBound(TblInv)
         If TblInv(i, 1) = CB_Pièce.Text Then
            .AddItem TblInv(i, 5)
            If catetr = "" Then catetr.Text = TblInv(i, 2)
        
            If stocktr = "" Then stocktr = TblInv(i, 4)
If Me.OptionButton1 = True Then
       If TextBox1 = "" Then TextBox1 = ""
ElseIf Me.OptionButton2 = True Then
    If TextBox1 = "" Then TextBox1 = Format(TblInv(i, 9), "DD/MM/YYYY")
End If

        End If
      Next i
      .ListIndex = 0
   End With
Me.stocktr.Enabled = False
Quantitetr.SetFocus
End Sub
[CODE]Private Sub MajStkProv()
Dim i&
   For i = 1 To UBound(TblInv)
      If TblInv(i, 1) = CB_Pièce.Text Then
         If TblInv(i, 5) = ComboBox1 Then
            stocktr = TblInv(i, 4)
         
 Exit For
         Else: stocktr = 0
       
         End If
         End If
   Next i
End Sub
[/CODE]
VB:
Private Sub CommandButton2_Click()
On Error Resume Next
If Datetr = "" Then
        Datetr.SetFocus
        MsgBox "Vous devez donner une date."
        Exit Sub
    ElseIf Not IsDate(Datetr) Then
        Datetr = ""
        Datetr.SetFocus
        MsgBox "Date incorrecte."
        Exit Sub
    End If
    If OptionButton1 = False And OptionButton2 = False Then
        MsgBox "Vous devez choisir une option : Entrees ou Sorties."
        Exit Sub
    End If
    If ListBox1.ListCount = 0 Then
    MsgBox "Le dossier d'échange est vide, il ne contient aucun élément ", , "alerte"
    Exit Sub
 End If
 Dim dat, dat_bon As Date
Dim x As Integer
Dim v As Integer
Dim Uf As Integer
Dim i As Long
Dim J As Long
Set fa = Sheets("Stock")
With Feuil1
Uf = fa.Range("A" & Rows.Count).End(xlUp).Row
For i = 0 To ListBox1.ListCount - 1
For J = 2 To Uf
If .Cells(J, 1) = Val(ListBox1.List(i, 0)) And .Cells(J, 5) = ComboBox1 Then
      If Me.OptionButton1 = True Or Me.OptionButton2 = True Then
        dat_bon = .Cells(J, 9)
        If dat_bon < dat Then
        dat_bon = dat
        End If
      End If
End If
Next J
Next i

For i = 0 To ListBox1.ListCount - 1
For J = 2 To Uf
If .Cells(J, 1) = Val(ListBox1.List(i, 0)) And .Cells(J, 5) = ComboBox1 And .Cells(J, 9) = dat_bon Then
      If Me.OptionButton1 = True Then
        .Cells(J, 4) = .Cells(J, 4) + Val(ListBox1.List(i, 3))
        .Cells(J, 6) = .Cells(J, 6) - Val(ListBox1.List(i, 3))
      ElseIf Me.OptionButton2 = True Then
        .Cells(J, 4) = .Cells(J, 4) - Val(ListBox1.List(i, 3))
        .Cells(J, 7) = .Cells(J, 7) + Val(ListBox1.List(i, 3))
      End If
End If
Next J
Next i
End With
'Call TO_Maghzin
If OptionButton1 = True Then
Set fe = Sheets("Entrees")
For v = 0 To ListBox1.ListCount - 1
        Lige = fe.Range("A" & Rows.Count).End(xlUp)(2).Row
        fe.Range("A" & Lige) = Datetr
        fe.Range("B" & Lige) = ListBox1.List(v, 0)
        fe.Range("C" & Lige) = ListBox1.List(v, 2)
        fe.Range("E" & Lige) = ListBox1.List(v, 3)
        fe.Range("G" & Lige) = ListBox1.List(v, 4)
        If Me.OptionButton1 = True Then
        fe.Range("D" & Lige) = "Entrée"
        ElseIf Me.OptionButton2 = True Then
        fe.Range("D" & Lige) = "Sortie"
        End If
        fe.Range("F" & Lige) = ComboBox1
        Next v
    ElseIf Me.OptionButton2 = True Then
        Set fs = Sheets("Sorties")
        For x = 0 To ListBox1.ListCount - 1
        Ligs = fs.Range("A" & Rows.Count).End(xlUp)(2).Row
        fs.Range("A" & Ligs) = Datetr
        fs.Range("B" & Ligs) = ListBox1.List(x, 0)
        fs.Range("C" & Ligs) = ListBox1.List(x, 2)
        fs.Range("E" & Ligs) = ListBox1.List(x, 3)
        fs.Range("G" & Ligs) = ListBox1.List(x, 4)
        If Me.OptionButton1 = True Then
        fs.Range("D" & Ligs) = "Entrée"
        ElseIf Me.OptionButton2 = True Then
        fs.Range("D" & Ligs) = "Sortie"
         End If
        fs.Range("F" & Ligs) = ComboBox1
    Next x
    End If
    Me.Quantitetr = ""
    Me.ComboBox1 = ""
    MsgBox "Saisie enregistrée."
    ListBox1.Clear
    Unload Me
UserForm1.Show
End Sub
 

Pièces jointes

  • Compress_٢٠٢٤٠٥١٧_٠٩٢٤٢١_1397.jpg
    Compress_٢٠٢٤٠٥١٧_٠٩٢٤٢١_1397.jpg
    256.1 KB · Affichages: 4
Dernière édition:

Mody200

XLDnaute Occasionnel
Bonjour

Aux géants de VBA et aux personnes expérimentées dans le démontage de codes insolubles

S'il vous plaît, aidez-moi à créer un code de génie unique

La nature du fonctionnement du code

Il fait référence à plus d'une référence

1 - Nom du magasin

Code 2-catégorie

3- Le stock est un solde attribué au magasin auquel il appartient

4 - Date de péremption de l'article

Parce que le code article est répété avec son magasin sur la feuille avec le grand nombre d'importations et est dû à la date de péremption de l'article.

Ce qui est requis lors du choix du nom du magasin et du code article, c'est que l'inventaire de l'article appartenant au magasin apparaisse, à condition que la date de péremption la plus ancienne de cet article soit

Lorsque le stock minimum est nul, il est déplacé à la date suivante avec la dernière quantité de stock pour cet article appartenant au magasin à enquêter.

Le résumé du travail est le processus de vente de l'inventaire à la date la plus ancienne, et lorsque la limite de l'inventaire est nulle, il passe à la prochaine date d'expiration pour le magasin et l'article ensemble.

Merci beaucoup

Je suis bloqué et j'espère que vous pourrez m'aider pour que je puisse bénéficier de vos expériences dans le domaine du VBA
 

Mody200

XLDnaute Occasionnel
Bonjour ChTi160
Commençons par cette demande, s'il vous plaît
Aux géants de VBA et aux personnes expérimentées dans le démontage de codes insolubles

S'il vous plaît, aidez-moi à créer un code de génie unique

La nature du fonctionnement du code

Il fait référence à plus d'une référence

1 - Nom du magasin

Code 2-catégorie

3- Le stock est un solde attribué au magasin auquel il appartient

4 - Date de péremption de l'article

Parce que le code article est répété avec son magasin sur la feuille avec le grand nombre d'importations et est dû à la date de péremption de l'article.

Ce qui est requis lors du choix du nom du magasin et du code article, c'est que l'inventaire de l'article appartenant au magasin apparaisse, à condition que la date de péremption la plus ancienne de cet article soit

Lorsque le stock minimum est nul, il est déplacé à la date suivante avec la dernière quantité de stock pour cet article appartenant au magasin à enquêter.

Le résumé du travail est le processus de vente de l'inventaire à la date la plus ancienne, et lorsque la limite de l'inventaire est nulle, il passe à la prochaine date d'expiration pour le magasin et l'article ensemble.

Merci beaucoup

Je suis bloqué et j'espère que vous pourrez m'aider pour que je puisse bénéficier de vos expériences dans le domaine du VBA
 

Mody200

XLDnaute Occasionnel
Bonjour
Tout d'abord, merci pour votre intérêt
Mais qu’y a-t-il d’incompréhensible dans mes propos ?
Je veux que lorsque je choisis un magasin et un code produit, la valeur du stocker vienne à la date la plus basse
Cela est dû à la vente de la date la plus ancienne puis de la suivante la plus récente dans le cas de la
Compress_٢٠٢٤٠٥١٧_٠٩٢٤٢١_1397(2).jpg
cellule D4, puisque les dates sont différentes en raison des quantités d'achat multiples dans les cellules I4:I20.
 
Dernière édition:

Mody200

XLDnaute Occasionnel
A= CB_Pièce ( 100 )
E= ComboBox1 ( magasin )
D= STOCKER ( 149 & 10 )
i = Textbox1 date (01/01/2024 & 01/05/2024 )
La condition doit être remplie
Date minimum et stock pour le produit et le code magasin
comme ça
A= CB_Pièce ( 100 )
E= ComboBox1 ( magasin )
D= STOCKER ( 10 )
i = Textbox1 date (01/01/2024 )
C'est par choix
CB_Pièce ( 100 ,101,102,103......
ComboBox1 ( magasin ,magasin1,magasin2,magasin,.....

Lorsque la limite de commande atteint zéro, elle passe à la deuxième quantité et la date suivante est le 01/05/2024
Compress_٢٠٢٤٠٥١٧_٠٩٣٦٤٠_0073.jpg


J'espère avoir répondu à ma demande et je vous serais reconnaissant de m'aider
 
Dernière édition:

Oneida

XLDnaute Impliqué
Bonjour,
Lorsque la limite de commande atteint zéro, elle passe à la deuxième quantité
Comprends pas votre logique
Serait plus simple d'entrer le nombre a sortir et par code aller chercher dans les magasins en fontion des stocks et date les plus anciennes pour avoir ce que vous voulez sortir.
Que faire si demande superieure a stock?
 
Dernière édition:

Mody200

XLDnaute Occasionnel
Merci de votre intérêt pour mon problème
Bonjour,
Lorsque la limite de commande atteint zéro, elle passe à la deuxième quantité
Comprends pas votre logique
Serait plus simple d'entrer le nombre a sortir et par code aller chercher dans les magasins en fontion des stocks et date les plus anciennes pour avoir ce que vous voulez sortir.
Que faire si demande superieure a st
Oneida
Si vous souhaitez décaisser la quantité pour l'expiration minimale, puis passer progressivement à l'expiration suivante. Si nous supposons que la valeur à décaisser est de 20 et que le stock pour la date la plus ancienne est de 10, décaissez 10, puis passez à la seconde. 10 à la date suivante dans la list box, ce qui signifie que le produit est répété avec la valeur et les deux dates.
 

Discussions similaires

Statistiques des forums

Discussions
312 696
Messages
2 091 054
Membres
104 748
dernier inscrit
Lylie76