Gestion de stok très simplifiée

Staple1600

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Re


Celle-ci donc ?
FLstPcD.[DescriptionPièces].Rows(L).Value & vbCrLf & vbCrLf & "Quantité = " & Abs(Qté),
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Celle-là en fait :

If InputBox(Choose((Sgn(Qté) + 3) \ 2, "SORTIE DE STOCK DE ", "ENTREE EN STOCK DE") & vbCrLf & vbCrLf & "Référence : " & CbxCode.Value & vbCrLf & vbCrLf & "Description : " & FLstPcD.[DescriptionPièces].Rows(L).Value & vbCrLf & vbCrLf & "Quantité = " & Abs(Qté), "Confirmation mouvement", "Pour confirmer, entrer votre prénom et cliquez sur OK", 5900, 4000) = vbOK Then
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Oui, tu as parfaitement raison, mais en fait ce qui m'intéresse c'est la demande du prénom pour valider l'entrée ou la sortie d'un produit du stock !
 

Staple1600

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Re

J'ai un doute: le VBA de Dranreb tu le testes sur un de tes classeurs (ou sur le fichier posté par lui) ?
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

J'ai réussi à résoudre mon problème même si je doute que ma méthode soit bien orthodoxe... Je cherche maintenant à ajouter le nom entré par la personne dans le tableau de suivi des opérations réalisées.
Quelqu'un peut-il m'aider ??
Merci et bonne soirée

Code:
Option Explicit

Private Sub BtOk_Click()
Dim L As Long, Qté As Long, Stock As Long, Z As String, Lgn As Long, nom As Long
L = CbxCode.ListIndex + 1
If L = 0 Then
   MsgBox "Veuillez entrer un code correct", vbCritical, "Mouvement"
ElseIf Not IsNumeric(TbxQté.Value) Then
   MsgBox "Veuillez saisir une quantité numérique", vbCritical, "Mouvement"
Else
   Qté = TbxQté.Value: If Left$(Caption, 6) = "Sortie" Then Qté = -Qté
   Stock = FLstPcD.[StockDispo].Rows(L).Value
   If Stock + Qté < 0 Then Z = "             Stock insuffisant !" & vbLf: Qté = 0 Else Z = ""
   If Qté = 0 Then
      MsgBox Z & " Veuillez saisir une quantité valide ", vbCritical, Caption
      Else
      UfMvt.Hide
      
   If MsgBox(Z & Abs(Qté) & " pièces """ & CbxCode.Value & """ à " & Choose((Sgn(Qté) + 3) \ 2, _
      "retirer.", "approvisionner"), vbOKCancel) = vbOK Then
   If InputBox("Confirmer:", "Pour confirmer, entrer vos nom et prénom, puis cliquez sur OK") = "nom" Then
       End If
      
      Stock = Stock + Qté
      FLstPcD.[StockDispo].Rows(L).Value = Stock
      With FArch.[Tablo]: Lgn = .Rows.Count: .Rows(Lgn).Copy: .Rows(Lgn).Insert
         Lgn = .Rows(Lgn + 1).Row: End With
      FArch.[Heure].Rows(Lgn).Value = Now
      FArch.[Code.].Rows(Lgn).Value = CbxCode.Value
      FArch.[Qté].Rows(Lgn).Value = Qté
      FArch.[Stock].Rows(Lgn).Value = Stock
      FLstPcD.[DatDrnMvt].Rows(L).Value = Now
      FLstPcD.[QtéDrnMvt].Rows(L).Value = Qté
'    CreateObject("Wscript.shell").Popup "Merci"&"prénom saisi !", 2, "Confirmation", 64
      End If
      End If
   End If

End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Bonjour
Dans la version que j'ai gardée l'UfMvt permettait d'entrer plusieurs mouvements puis de valider le tout par un bouton "Go!" Est-ce vous qui avez simplifié tout celà ?
Au lieu de :
Choose((Sgn(Qté) + 3) \ 2, "retirer.", "approvisionner"
ne pourriez vous prendre Me.Caption tout simplement ?
Je pense que vous auriez intérêt à ajouter une TextBox pour la saisie du nom, à ajouter une colonne nommée pour l'accueillir dans l'historique et à l'y inscrire sur le même modèle que les autres informations.
À+
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Bonjour,
En fait, je m'intéresse depuis peu à la rédaction de code et j'ai essayé de me dépatouiller comme j'ai pu :eek: ... je trouve le fichier plus adapté à mes besoins avec la saisie du nom et du prénom de la personne pour suivre les modifications apportées au stock. Pour la commande Me.Caption, je ne connais pas et je dois comprendre comment ça fonctionne.
Merci Danreb !
Bonne journée
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Me est un mot clé désignent l'objet auquel est attaché le code, ici UfMvt. Caption c'est une propriété du l'UF représentant le titre de sa fenêtre. Elle est généralement fixée dans la fenêtre de propriétés, mais comme ici c'est le même UF pour les entrées et les sorties elle est fixée dynamiquement dans les procédures BtEntrée_Click et BtSortie_Click de Feuil1 (GESTION STOCK)
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Merci des explications ! Je vais essayer de les utiliser pour résoudre mon problème...
A+
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Et bien j'suis perdue... J'ai modifié le code en pensant arriver à mes fins comme ça mais j'obtiens une erreur 424...
A l'aide ;-) !!

Code:
Option Explicit

Private Sub BtOk_Click()
Dim L As Long, Qté As Long, Stock As Long, Z As String, Lgn As Long, prénom As String
L = CbxCode.ListIndex + 1
If L = 0 Then
   MsgBox "Veuillez entrer un code correct", vbCritical, "Mouvement"
ElseIf Not IsNumeric(TbxQté.Value) Then
   MsgBox "Veuillez saisir une quantité numérique", vbCritical, "Mouvement"
Else
   Qté = TbxQté.Value: If Left$(Caption, 6) = "Sortie" Then Qté = -Qté
   Stock = FLstPcD.[StockDispo].Rows(L).Value
   If Stock + Qté < 0 Then Z = "             Stock insuffisant !" & vbLf: Qté = 0 Else Z = ""
   If Qté = 0 Then
      MsgBox Z & " Veuillez saisir une quantité valide ", vbCritical, Caption
      Else
      UfMvt.Hide
      
   If MsgBox(Z & Abs(Qté) & " pièces """ & CbxCode.Value & """ à " & Choose((Sgn(Qté) + 3) \ 2, _
      "retirer.", "approvisionner"), vbOKCancel) = vbOK Then
   prénom = InputBox("Confirmer:", "Pour confirmer, entrer vos nom et prénom, puis cliquez sur OK")
   
       End If
      
      Stock = Stock + Qté
      FLstPcD.[StockDispo].Rows(L).Value = Stock
      With FArch.[Tablo]: Lgn = .Rows.Count: .Rows(Lgn).Copy: .Rows(Lgn).Insert
         Lgn = .Rows(Lgn + 1).Row: End With
      FArch.[Heure].Rows(Lgn).Value = Now
      FArch.[Code.].Rows(Lgn).Value = CbxCode.Value
      FArch.[Qté].Rows(Lgn).Value = Qté
      FArch.[Stock].Rows(Lgn).Value = Stock
      FLstPcD.[DatDrnMvt].Rows(L).Value = Now
      FLstPcD.[QtéDrnMvt].Rows(L).Value = Qté
[COLOR="red"]FArch.[Nom].Rows(Lgn).Value = prénom[/COLOR]
      CreateObject("Wscript.shell").Popup "Merci"&"prénom saisi !", 2, "Confirmation", 64
      End If
      End If
   
End Sub


Private Sub UserForm_Click()

End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Ça devrait marcher si la plage nommée "Nom" est correctement définie. Quelle référence porte-t-elle ?
P.S. Définissez des colonnes entières pour les noms de la feuille historique. C'est leur intersection avec la plage "Tablo" qui en définit la partie utilisée. Supprimez les lignes inutilisées. La plage Tablo est automatiquement agrandie si vous n'avez pas tout cassé.
 
Dernière édition:

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Ca y est, j'y suis arrivée grâce à vous Danreb ! La plage était mal référencée :eek:. Merci !
J'abuse mais pouvez-vous m'expliquer comment procéder pour que lorsque l'on clique sur "Entrée", on ait dans la liste déroulant le code de l'article mais aussi sa description (colonne A et B de la feuille "STOCKS") ??
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Le mieux serait un 2ième ComboBox pour pouvoir même saisir l'un ou l'autre, le changement de chacun des 2 entrainant la correction du ListIndex de l'autre à la même valeur.
Ça aussi c'était déjà dans la version que j'ai gardée.
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Je suis d'accord avec vous, mais dans mon cas, le code de l'article peut être attribué à plusieurs descriptions (ce n'est pas exactement ça mais j'utilise l'exemple cité dans ce sujet). J'aimerais donc que dans la liste on ait les deux en même temps. Dites moi si ce n'est pas clair...
Merci de prendre le temps de m'aider !
A+
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Je vois que la feuille Stock est aussi considérablement dégradée par rapport à ce que j'avais fait:
Les plages couvraient en permanence uniquement ce qui était effectivement utilisé et un dispositif simple permettait de les agrandir en sélectionnant "nouvelle pièce" en bas. Elle doit être bien grande la liste de votre ComboBox !

Fenêtre de propriétés, changer pour: CbxCode (ComboBox)
Code:
ColumnCount:     2
ColumnWidths:    40
RowSource:       CodesPièces:DescriptionPièces
 
Dernière édition:

Discussions similaires


Haut Bas