Bonjour,
Supposition > tu as 2 cocas > tu veux les supprimer > dans textbox1 > tu écris par erreur -5 au lieu de - 2 > l'écriture se fait en négatif ainsi que le montant > au lieu de supprimer la ligne coco ...
Tu as 2 cocas > tu veux les supprimer > dans textbox1 > tu écris -2 > l'écriture se faisait à 0 coca > au lieu de supprimer la ligne coca ...
Le code ci-bas corrige ces situations ... ( voir '' << ajout )
À tester zau cas zoù qu'il subsisterait des erreurs ... (
Sub CompteEtEcrit()
Dim Total As Double
Dim X As Byte
Sheets("PU").Select ' utile seulement pour le dépannage
Range("A1").Select ' utile seulement pour le dépannage
If Me.ListBox1.ListCount > 0 Then ' s'il y a déjà au moins un item dans la listbox
For X = 0 To Me.ListBox1.ListCount - 1 ' boucle sur les items
If Me.ListBox1.Column(1, X) = LeProduit Then ' si l'item de la boucle = LeProduit
Me.ListBox1.Column(0, X) = CInt(Me.ListBox1.Column(0, X)) + CInt(Me.TextBox1) ' addition (colonne 1 du listbox)
Me.ListBox1.Column(3, X) = CDbl(Me.ListBox1.Column(0, X)) * CDbl(Me.ListBox1.Column(2, X))
Me.TextBox4 = CDbl(Me.ListBox1.Column(0, X)) * CDbl(Me.ListBox1.Column(2, X))
If Me.ListBox1.Column(0, X) < 1 Then Me.ListBox1.RemoveItem (X) '' << ajout
Me.ListBox1.ListIndex = -1 ' désélectionne item du listbox
Exit Sub ' sort de la macro
End If
Next X
If Me.TextBox1 < 1 Or Me.TextBox1 = "-" Then Exit Sub '' << ajout
Me.ListBox1.AddItem ' s'il y a des items dans la listbox, mais pas le produit ajouté
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = Me.TextBox1.Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = LeProduit
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Me.TextBox3.Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = CDbl(Me.ListBox1.Column(0, X)) * CDbl(Me.ListBox1.Column(2, X))
Me.TextBox4 = CDbl(Me.ListBox1.Column(0, X)) * CDbl(Me.ListBox1.Column(2, X))
Else
If Me.TextBox1 < 1 Or Me.TextBox1 = "-" Then Exit Sub '' << ajout
Me.ListBox1.AddItem ' s'il y a pas d'item dans la listbox
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = Me.TextBox1.Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = LeProduit
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Me.TextBox3.Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = CDbl(Me.ListBox1.Column(0, X)) * CDbl(Me.ListBox1.Column(2, X))
Me.TextBox4 = CDbl(Me.ListBox1.Column(0, X)) * CDbl(Me.ListBox1.Column(2, X))
End If
Me.ListBox1.ListIndex = -1 ' désélectionne item du listbox
End Sub
ric