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 et j'aimerais aussi voir t'etat de stock dans un lisbox.

Je vous remercié d'avance !!!

Fichiers joints::

19essaie.xlsm (41.01 Ko)

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 Sub

Prends 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 !!!

Rechercher des sujets similaires à "demande aide"