Une question de calcul pour entrée et sortie de stock

Bonjour,

j'ai un gestionnaire de gestion de stock en VBA comment faire pour additionner mes entrée ou soustraire mes sortie en VBA ou sur mes feuilles.

Merci

Salut,

Vu le peu d'information que tu nous donne, je vais essayer de répondre avec ce que je sais.

En général pour additionner on utilise l'opérateur "+", et pour soustraire on utilise l'opérateur "-". En VBA cela fonctionne aussi, il peut reconnaitre ces opérateurs.

Blague à part, si tu veux de l'aide, il serait appréciable de nous fournir un fichier, un contexte, du code, n'importe quoi ..

Bibu

ok voici mon code d'entrée de mon 1 er usurform qui ouvre le 2éme FmSaisieEntree_mag

----------------------------------

Option Explicit

Private Sub CmdAjouter_Click()
AjoutModification = True
FmSaisieEntree_mag.Show

End Sub

Private Sub CmdModifier_Click()
AjoutModification = False

If Me.LBEntree.ListIndex = -1 Then
MsgBox "Veuillez selectionner la ligne à modifier avant de continuer", vbCritical, "STOCK"
Else

LigneAmodifier = Me.LBEntree.ListIndex + 2
FmSaisieEntree_mag.TxCodeArticle.Value = Entree_Sortie_Mag.Range("A" & LigneAmodifier).Value
FmSaisieEntree_mag.TxLibelleArticle.Value = Entree_Sortie_Mag.Range("B" & LigneAmodifier).Value
FmSaisieEntree_mag.Tb_date.Value = Entree_Sortie_Mag.Range("C" & LigneAmodifier).Value
'FmSaisieEntree_mag.TxStock.Value = Entree_Sortie_Mag.Range("D" & LigneAmodifier).Value
FmSaisieEntree_mag.TxStockminimum.Value = Entree_Sortie_Mag.Range("E" & LigneAmodifier).Value
'FmSaisieEntree_mag.TxAlarme.Value = Entree_Sortie_Mag.Range("F" & LigneAmodifier).Value
FmSaisieEntree_mag.TxEntree.Value = Entree_Sortie_Mag.Range("G" & LigneAmodifier).Value
FmSaisieEntree_mag.Show

End If
End Sub

Private Sub CmdQuitter_Click()
Unload FmEntree_mag
End Sub

Private Sub Cmdsupprimer_Click()

AjoutModification = False

If Me.LBEntree.ListIndex = -1 Then
MsgBox "Veuillz selectionner la ligne à supprimer avant de continuer", vbCritical, "Stock"
Else
LigneAmodifier = Me.LBEntree.ListIndex + 2
Entree_Sortie_Mag.Rows(LigneAmodifier).Delete
MsgBox "La supperssion s'est effectuée avec succès !", vbInformation, "STOCK"
End If
End Sub

Private Sub SpinButton1_Change()
LBEntree.ListIndex = SpinButton1.Value

End Sub

------------------------------------------------------------------------------

et mon code de saisie qui et FmSaisieEntree_mag

Private Sub CmdValider_Click()
If MsgBox("Souhaitez-vous valider ces information ? ", vbQuestion + vbYesNo, "STOCK") = vbNo Then Exit Sub

'Mettre à ce niveau les controles de saisies

Dim I As Long
If AjoutModification = True Then
I = Derligne(Entree_Sortie_Mag.Name)
Else
I = LigneAmodifier
End If

Entree_Sortie_Mag.Range("A" & I).Value = Me.TxCodeArticle.Value
Entree_Sortie_Mag.Range("B" & I).Value = Me.TxLibelleArticle.Value
Entree_Sortie_Mag.Range("C" & I).Value = Me.Tb_Date.Value
Entree_Sortie_Mag.Range("G" & I).Value = Me.TxEntree.Value
Entree_Sortie_Mag.Range("E" & I).Value = Me.TxStockminimum.Value


MsgBox "Vos informations ont été enregistrées avec succès !", vbInformation, "STOCK"
Unload Me

End Sub

et j'ai un autre usurform pour les article (base de donner)

Option Explicit

Private Sub CmdAjouter_Click()
AjoutModification = True
FmSaisieArticles_mag.Show
End Sub

Private Sub CmdModifier_Click()
AjoutModification = False

If Me.LBArticle.ListIndex = -1 Then
MsgBox "Veuillz selectionner la ligne à modifier avant de continuer", vbCritical, "Stock"
Else
LigneAmodifier = Me.LBArticle.ListIndex + 2
FmSaisieArticles_mag.TxCodeArticle.Value = Feuildonneearticle.Range("A" & LigneAmodifier).Value
FmSaisieArticles_mag.TxLibelleArticle.Value = Feuildonneearticle.Range("B" & LigneAmodifier).Value
FmSaisieArticles_mag.TxEntree.Value = Feuildonneearticle.Range("g" & LigneAmodifier).Value
FmSaisieArticles_mag.TxStockminimum.Value = Feuildonneearticle.Range("e" & LigneAmodifier).Value
FmSaisieArticles_mag.Show
End If
End Sub

Private Sub Cmdsupprimer_Click()

AjoutModification = False

If Me.LBArticle.ListIndex = -1 Then
MsgBox "Veuillz selectionner la ligne à supprimer avant de continuer", vbCritical, "Stock"
Else
LigneAmodifier = Me.LBArticle.ListIndex + 2
Feuildonneearticle.Rows(LigneAmodifier).Delete
MsgBox "La supperssion s'est effectuée avec succès !", vbInformation, "STOCK"
End If

End Sub

Private Sub CmdQuitter_Click()
Unload Me
End Sub

Private Sub SpinButton1_Change()
LBArticle.ListIndex = SpinButton1.Value
End Sub

---------------------------------

mon 2éme FmSaisieArticles_mag

Option Explicit

Private Sub CmdValider_Click()
If MsgBox("Souhaitez-vous valider ces information ? ", vbQuestion + vbYesNo, "STOCK") = vbNo Then Exit Sub

'Mettre à ce niveau les controles de saisies

Dim I As Long
If AjoutModification = True Then
I = Derligne(Entree_Sortie_Mag.Name)
Else
I = LigneAmodifier
End If

Entree_Sortie_Mag.Range("A" & I).Value = Me.TxCodeArticle.Value
Entree_Sortie_Mag.Range("B" & I).Value = Me.TxLibelleArticle.Value
Entree_Sortie_Mag.Range("C" & I).Value = Me.Tb_Date.Value
Entree_Sortie_Mag.Range("G" & I).Value = Me.TxEntree.Value
Entree_Sortie_Mag.Range("E" & I).Value = Me.TxStockminimum.Value


MsgBox "Vos informations ont été enregistrées avec succès !", vbInformation, "STOCK"
Unload Me

End Sub

Quitte à paraître un peu lourd, plutôt que de copier/coller ton code en brut comme ça en réponse,

Utilise les balise </>, ça sera déjà beaucoup plus lisible

image

De plus, un fichier (anonymisé) serait un gros plus pour la compréhension du problème ..

Bibu

Option Explicit

Private Sub CmdAjouter_Click()
    AjoutModification = True
    FmSaisieEntree_mag.Show  'ou  FmSaisieEntree_mag   ou FmSaisieEntree_mag    FmSelectonEntreee_Sortie
End Sub

Private Sub CmdModifier_Click()
   AjoutModification = False

   If Me.LBEntree.ListIndex = -1 Then
      MsgBox "Veuillez selectionner la ligne à modifier avant de continuer", vbCritical, "STOCK"
   Else

    LigneAmodifier = Me.LBEntree.ListIndex + 2
    FmSaisieEntree_mag.TxCodeArticle.Value = Entree_Sortie_Mag.Range("A" & LigneAmodifier).Value
    FmSaisieEntree_mag.TxLibelleArticle.Value = Entree_Sortie_Mag.Range("B" & LigneAmodifier).Value
    FmSaisieEntree_mag.Tb_date.Value = Entree_Sortie_Mag.Range("C" & LigneAmodifier).Value
    'FmSaisieEntree_mag.TxStock.Value = Entree_Sortie_Mag.Range("D" & LigneAmodifier).Value
    FmSaisieEntree_mag.TxStockminimum.Value = Entree_Sortie_Mag.Range("E" & LigneAmodifier).Value
    'FmSaisieEntree_mag.TxAlarme.Value = Entree_Sortie_Mag.Range("F" & LigneAmodifier).Value
    FmSaisieEntree_mag.TxEntree.Value = Entree_Sortie_Mag.Range("G" & LigneAmodifier).Value
    FmSaisieEntree_mag.Show

   End If
End Sub

Private Sub CmdQuitter_Click()
   Unload FmEntree_mag
End Sub

Private Sub Cmdsupprimer_Click()

   AjoutModification = False

   If Me.LBEntree.ListIndex = -1 Then
      MsgBox "Veuillz selectionner la ligne à supprimer avant de continuer", vbCritical, "Stock"
   Else
     LigneAmodifier = Me.LBEntree.ListIndex + 2
     Entree_Sortie_Mag.Rows(LigneAmodifier).Delete
     MsgBox "La supperssion s'est effectuée avec succès !", vbInformation, "STOCK"
   End If
End Sub

Private Sub SpinButton1_Change()
 LBEntree.ListIndex = SpinButton1.Value

End Sub
donnee des entrees mag

FmEntree_mag

Qui après ouvre FmSaisieEntree_mag avec le code qui suis

saisie entree mag
Option Explicit

Private Sub CmdChoixArticle_Click() ' le bouton?
    CodeArticle = Me.TxCodeArticle.Value
    LibelleArticle = Me.TxLibelleArticle.Value

    FmSelectonEntreee_Sortie.Show

    Me.TxCodeArticle.Value = CodeArticle
    Me.TxLibelleArticle.Value = LibelleArticle
    Me.TxStock .Value = TxStoc

End Sub

Private Sub CmdValider_Click()
  If MsgBox("Souhaitez-vous valider ces information ? ", vbQuestion + vbYesNo, "STOCK") = vbNo Then Exit Sub

  'Mettre à ce niveau les controles de saisies

  Dim I As Long
  If AjoutModification = True Then
    I = Derligne(Entree_Sortie_Mag.Name)
  Else
    I = LigneAmodifier
  End If

  Entree_Sortie_Mag.Range("A" & I).Value = Me.TxCodeArticle.Value
  Entree_Sortie_Mag.Range("B" & I).Value = Me.TxLibelleArticle.Value
  Entree_Sortie_Mag.Range("E" & I).Value = Me.TxStockminimum.Value
  Entree_Sortie_Mag.Range("G" & I).Value = Me.TxEntree.Value
  Entree_Sortie_Mag.Range("C" & I).Value = Me.Tb_Date.Value

  MsgBox "Votre article à été engegistrées avec succès !", vbInformation, "STOCK"

  Unload Me

End Sub

bonjour,

Oui ben pour quoi juste du code c'est n'importe quoi... Sans le fichier je vais pas m'amuser à faire des hypothèses sur ton binz !

Une gestion de stock c'est comme un relevé de compte en banque la somme de ce qui rentre moins ce qui sort.

Et pour moi le calcul il se fait avec une formule Excel : Les formules de base de données sont instantanées et bien plus rapides que tout ce que tu pourras inventer en VBA.

Voir une gestion de stock minimaliste (pour le principe...) en pièce jointe. Après tu peux rajouter tout ce que tu veux une gestion des commandes , des livraisons, des clients, des fournisseurs le principe restera toujours le même une BD liste des Produits existants, une BD liste des mouvements de stocks et une feuille de calculs...

Tout le reste c'est du blabla... On peut rajouter un UserForm pour la saisie, visualiser en temps réel le stock restant, ajouter un stock minimum, un calendrier, toussa c'est que du bonus.

Nota : Dans cet exemple les Entrées et les sorties sont dans la même colonne et on ajoute juste E ou S selon que c'est une entrée ou une sortie. Mais on pourrait tout aussi bien supprimer cette colonne E/S et faire une colonne ou on ne mettrait que les entrées et une autre ou on ne mettrait que les sorties :

Le principe et le calcul ne seraient pas différents...

Dans le modèle joint remarquer la visualisation du stock existant qui suit les déplacements dans la feuille des Mouvements de stocks (pour éviter d'avoir à regarder en permanence sur la feuille précédente...) Mais on pourrait imaginer un affichage différent (qui ne montrerait que la situation du produit concerné...)

Nota2 : il peur exister quelques bugs dans ce fichier... J'ai bricolé ça en quelques minutes et... il est midi !

A+

104gstockslim-vg.xlsm (52.05 Ko)

ok je vais voir ça merci

entrees sortie mag

Ma feuille d'entrées sortie je demande juste si il y a une formule pour G2 que je rentre manuellement est la I2 la ou et la formule et que la G2 s'agrémente au fur à muser suivent les entrées.

merci

Rechercher des sujets similaires à "question calcul entree sortie stock"