Gestion de stok très simplifiée

sarata

XLDnaute Junior
Bonjour le forum !

J'ai un fichier contenant plusieurs références de pièces sur une colonne et leurs quantités sur une autre colonne et j'aimerai pouvoir gérer les entrées sorties de ces références de manière très simple:
2 "gros" boutons ENTREE et SORTIE

Exemple pour l'action du bouton entrée :​
Une fenêtre apparait avec 3 zones et un bouton valider:
- Entrée de stock à la date de : ../../....[ la date du jour est marquée sans possibilité de saisie]
- Entrer la référence à entrer en stock : [l'idéal serait une zone avec une saisie semi auto des données de la première colonne]
- Quantité à entrer : jusqu'à 6 digits
Après validation , une fenêtre "ok only" apparait pour confirmer l'opération : : la réf XXXX a été incrémentée de XXX, stock disponible : XXXX

Quelqu'un peut me proposer son aide?

Merci par avance!!
 

Pièces jointes

  • Gestion PCD V1.xls
    82.5 KB · Affichages: 357
Dernière édition:

Dranreb

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

Qu'est ce que c'est que ce msgbox en plein milieu de la boucle d'entrée en stock d'une seule ligne à chaque passage ???

Je proposais de laissé en fin:
VB:
If MsgBox(Me.[LignesEntrer].Rows.Count & " ajouts en stock d'un total de " & QtéTot & " pièces effectué." _
   & vbLf & "Sauf annulation, cette liste va maintenant être supprimée.", _
   vbInformation + vbOKCancel, "Approvisionnements") = vbCancel Then Exit Sub

Et ajoutez Qté et pas 1 à QtéTot.
Bonne soirée
 
Dernière édition:

alias_2003

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

Bonjour à tous,
J'aurais besoin de votre aide... J'essaie de m'initier à la programmation (...) et j'ai vu que dans le fichier Gestion PCD V2 2003 de Dranreb, on obtient une erreur d'exécution 13 avec le code suivant :


Code:
Option Explicit

Private Sub BtOk_Click()
Dim L As Long, Qté As Long, Stock As Long, Z As String, Lgn 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 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
     
      
      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.[Codes].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


Pourriez-vous m'aider ??
Merci à tous et bonne journée !
 
Dernière édition:

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

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
 

Discussions similaires

Réponses
2
Affichages
894

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof