Demandé d'aide
Bonjour à tous et au forum,
J'ai créer un fichier excel (VBA) de gestion de stock entrée/sortie, mais j'ai un problème au niveau de sortie si quelqu'un peut bein m'aider
Je vous remercié d'avance !!!
Fichiers joints::
Bonjour,
Le code modifié de l'UserForm de sortie :
Private Sub ComboBox1_Click()
Dim Ligne As Long
Ligne = ComboBox1.ListIndex + 2
Me.TextBox1.Text = Sheets("STOCK").Cells(Ligne, 1).Value
Me.TextBox5.Text = Sheets("STOCK").Cells(Ligne, 7).Value
Me.TextBox3.Text = Sheets("STOCK").Cells(Ligne, 6).Value
Me.TextBox4.Text = Sheets("STOCK").Cells(Ligne, 2).Value
End Sub
Private Sub FIN_Click()
Unload Me
Sheets("Acceuil").Select
End Sub
Private Sub SUPP_Click()
Me.ComboBox1.Text = ""
Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
Me.TextBox3.Text = ""
Me.TextBox4.Text = ""
Me.TextBox5.Text = ""
End Sub
Private Sub UserForm_Initialize()
Dim C As Range
For Each C In Range(Sheets("STOCK").[A2], Sheets("STOCK").[A65000].End(xlUp))
Me.ComboBox1.AddItem C.Value
Next C
Me.ComboBox1.ListIndex = 0
End Sub
Private Sub VALIDATION_Click()
Dim Date_mod As Date
Dim Ligne As Long
Dim xQ As Double
Date_mod = Date
Ligne = ComboBox1.ListIndex + 2
Sheets("STOCK").Cells(Ligne, 1).Value = Me.TextBox1.Text
Sheets("STOCK").Cells(Ligne, 8).Value = CDbl(Me.TextBox2.Text)
Sheets("STOCK").Cells(Ligne, 2).Value = UCase(Me.TextBox4.Text) '--- ITEM
xQ = Me.TextBox3.Text - Me.TextBox2.Text
If xQ < 0 Then
MsgBox "La quantité sortie est supérieure au stock !" & _
vbCrLf & _
vbCrLf & _
"Vous ne pouvez prendre que " & Me.TextBox3.Text & " pièces !"
xQ = 0
Me.TextBox2.Text = Me.TextBox3.Text
End If
Sheets("STOCK").Cells(Ligne, 6) = xQ
Me.TextBox3.Text = Sheets("STOCK").Cells(Ligne, 6).Value
Me.TextBox5.Text = Sheets("STOCK").Cells(Ligne, 7).Value
End SubPrends l'habitude de deux choses, la première, de déclarer toutes tes variables en le typant, pour rendre cela obligatoire (la déclaration mais pas le typage) tu fais "Outils"--->"Options..." onglet "Editeur" et tu coches la case "Déclaration des variables obligatoire" ce qui aura pour effet d'inscrire d'office "Option Explicit" en tête de tous modules. La seconde, c'est de préciser la propriété visée de façon explicite, exemple, au lieu de :
Sheets("STOCK").Cells(Ligne, 1) = Me.TextBox1
Sheets("STOCK").Cells(Ligne, 8) = CDbl(Me.TextBox2)faire :
Sheets("STOCK").Cells(Ligne, 1).Value = Me.TextBox1.Text
Sheets("STOCK").Cells(Ligne, 8).Value = CDbl(Me.TextBox2.Text)ici, précision des propriétés Text et Value
Merci bien #FRÈRE j'ai fait note
Je vais tester le code et je te ferais part !!
Et j'aimerais aussi voir les données feuille (STOCK) dans une lisbox (dynamique).
Merci encore de vôtre aide.
Merci #THEZE le code marche correct !!!