Problème sur contrôle quantité sur stock

Mireklolek

XLDnaute Nouveau
Bonjour à tous,

J’ai déjà eu l’occasion de faire appel à vos services qui à chaque fois mon aidés et solutionnés mes problèmes.

Mais là je me tourne vers vous car là je bloque sur un problème incompréhensible pour moi.

j'ai créé un fichier pour gérer les entrés sorties de stocks avec contrôle sur les quantités .
Je vais essayer d’être clair dans ma demande d’aide.

Le bouton de sortie du USF ouvre mon USF7 « sortie de stock local email » quand je choisi dans la liste déroulante la dernière ou l’avant dernière ligne et que je rentre ma quantité à sortir il m’indique bien dans la textbox ma quantité qui est à 50 et 70 pour l’autre mais quand je valide pour la sortie il me dit qu’il n’y a pas de produit en stock ?

Par contre sur les trois premiers de ma liste déroulante je sais sortir une quantité sans problème !

Est-ce que vous pourriez m’aider sur le sujet et me dire ou j’aurais pu me tromper dans le code .

En pièce jointe le fichier

Merci d’avance pour votre aide .

Mirek
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Mireklolek

Pour commencer les entêtes de la feuille sorties doivent êtres les mêmes que la feuille entrées. Dans la feuille entrées le code sap est par exemple 1234567 et dans la feuilles sorties c'est L45665 A3456789 qui correspond à INDEX(peut-être à cause du mauvais codage).

Ensuite, pour la déclaration des feuilles c'est
Dim liststk As Worksheet, fstkl As Worksheet, plage As Range, cel As Range, lig As Long etc. La combo 2 doit faire référence à la feuille sorties.

VB:
Private Sub UserForm_Initialize()

     Set fent = Sheets("Fiche des entrées")
     Set fs = Sheets("Fiche des sorties"), ensuite pour la recherche.
   
    ' A ADAPTER

  With fent
  For i = 2 To .Range("b65536").End(xlUp).Row
  ComboBox1 = .Range("b" & i)
  If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem .Range("b" & i)
  Next i

  For i = 2 To .Range("d65536").End(xlUp).Row
  ComboBox2 = .Range("d" & i)
  If ComboBox2.ListIndex = -1 Then ComboBox2.AddItem .Range("d" & i)
  Next i

  For i = 2 To .Range("g65536").End(xlUp).Row
  ComboBox3 = .Range("g" & i)
  If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem .Range("g" & i)
  Next i
  End With
End Sub

Private Sub Rechercher()
With fent
Set plage = .Range("b2:j" & Rows.Count).End(xlUp).Row
Set cel = plage.Find(ComboBox2, , xlValues, xlWhole)
If Not cel Is Nothing Then
ComboBox3 = cel.offset(0, 4)
ComboBox1 = cel.offset(0, 6)
TextBox8 = cel.offset(0, 2)
etc.
End If
End With

Private Sub ComboBox2_Change()
Call Rechercher
End Sub

Private Sub CommandButton1_Click()
With Fs
lig = .Range("a" & Rows.Count).End(xlup).Row + 1
.Range("f" & lig) = TextBox8
End With
End Sub

Private Sub TextBox4_AfterUpdate()
TextBox8 = TextBox8 - TextBox4
End Sub
 
Dernière édition:

Mireklolek

XLDnaute Nouveau
Bonjour à tous,

J’ai déjà eu l’occasion de faire appel à vos services qui à chaque fois mon aidés et solutionnés mes problèmes.

Mais là je me tourne vers vous car là je bloque sur un problème incompréhensible pour moi.

j'ai créé un fichier pour gérer les entrés sorties de stocks avec contrôle sur les quantités .
Je vais essayer d’être clair dans ma demande d’aide.

Le bouton de sortie du USF ouvre mon USF7 « sortie de stock local email » quand je choisi dans la liste déroulante la dernière ou l’avant dernière ligne et que je rentre ma quantité à sortir il m’indique bien dans la textbox ma quantité qui est à 50 et 70 pour l’autre mais quand je valide pour la sortie il me dit qu’il n’y a pas de produit en stock ?

Par contre sur les trois premiers de ma liste déroulante je sais sortir une quantité sans problème !

Est-ce que vous pourriez m’aider sur le sujet et me dire ou j’aurais pu me tromper dans le code .

En pièce jointe le fichier

Merci d’avance pour votre aide .

Mirek
 

Mireklolek

XLDnaute Nouveau
Bonjour Lone-wolf,

merci beaucoup pour votre réponse .
je vais faire les modifications nécessaires pour adapter le code que vous m'avez envoyé .
pour ce qui est des codes SAP j'ai du faire 2 champs différents car j'ai une gestion de différents lots par code SAP
il est vrai que ça fait un peu désordre .
je fais les essais dans la journée (contraintes professionnelles)
je reviens sur le forum pour faire part du résultat
merci encore et bonne journée
 

Mireklolek

XLDnaute Nouveau
bonjour,
après quelques modifications apportés à mon fichier au niveaux de mes entêtes,
j'ai essayé d'adapter les codes que j'ai eu mais sans succès pour ma part
j'ai perdu mes listes combobox elles ne correspondaient plus à mon userform.
j'ai remarqué en fait que le contrôle de quantité je le faisais mais pas dans la bonne feuille .
il se faisait sur la feuille "fiche de stock" au lieu de "fiche de stock lot"
pour résumer fiche de stock c'est le stock global par code SAP
et fiche de stock lot c'est les différents lots pour un même code SAP

For Each c In fstkl.Range("A2:A" & fstk.Range("A" & Rows.Count).End(xlUp).Row)

le fstk.range de
 

Mireklolek

XLDnaute Nouveau
bonjour Lone-wolf et à tous,

après quelques modifications apportés à mon fichier au niveaux de mes entêtes,
qui en avaient besoin
j'ai essayé d'adapter les codes que j'ai eu mais sans succès pour ma part
j'ai perdu mes listes combobox elles ne correspondaient plus à mon userform.

j'ai remarqué en fait que le contrôle de quantité je le faisais mais pas dans la bonne feuille .
il se faisait sur la feuille "fiche de stock" au lieu de "fiche de stock lot".
pour résumer la feuille "fiche de stock" c'est le stock global par code SAP
et la feuille "fiche de stock lot" c'est le stock des différents lots pour un même code SAP

voici la ligne en erreur dans le USF7

For Each c In fstkl.Range("A2:A" & fstk.Range("A" & Rows.Count).End(xlUp).Row)

le fstk.range devait être en fait fstkl.range et comme j'ai beaucoup moins de lignes dans "fiche de stock" la recherche s’arrêtait avant.

autre soucis par contre :
j'ai mis en place un contrôle sur la quantité en stock lot USF7

voici le bout de code :
If TextBox4 > TextBox8 Then
MsgBox "Vous n'avez que " & fstkl.Range("F" & lgn) - TextBox4 * 1 & " unités de ce produit en stock.", 16
MsgBox "Il vous reste " & TextBox8 & " unités de ce Lot en stock.", 16
Exit Sub
Else
fstkl.Range("F" & lgn) = fstkl.Range("F" & lgn) - TextBox4 * 1
End If
mais des fois il me met le message qu'il me reste 50 pots alors que j'ai demandé à en sortir que 20
et par moment il prend en compte !
je ne vois pas pourquoi .

ensuite autre question dans le USF modification de données
quand je modifie la quantité dans la feuille fiche de stock lot je voudrais que la quantité de pot dans la feuille fiche de stock qui correspond à la quantité totale des code SAP lots pour un même code SAP soit mis à jour aussi que se soit en ajout ou en retirant une quantité

merci d'avance pour votre aide
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
312 491
Messages
2 088 888
Membres
103 982
dernier inscrit
krakencolas