carlitostyle
XLDnaute Junior
Bonjour, j'ai un petit probléme avec l'état de mon stock. le truc c'est que j'ai ma ligne dans la feuille ficheresponsableachat avec toutes les informations relative a la comande. que j'ai créer via un userform formulaire. avec ( prix, quantité, reference... ). Et je veux traiter cette ligne GRACE a un autre userform1. Qui lui va faire une sorte de bon de comande sur un autre ligne d'une nouvelle feuille s'appelant commandetraite. Ainsi le but de l'userform1 c'est de voir en temps réel si j'ai le stock necessaire au moment de la commande. la ligne se crée sur la feuille commandetraitee mais pas d'actualisation du stock. C'est peut-êter un petit signe qui faut changer. En tout cas si vous trouvez je vous en serai grandement reconnaissant ce travail est vraiment hyper important.
Je vous join un screenshot pour que vous puissiez apprecier le concept et que ce sois plus clair pour vous
Merci beaucoup
Private Sub CommandButton1_Click()
Unload UserForm1
userformparametrage.Show
End Sub
Option Explicit
Dim VarSelectedArticle As Integer
Private Sub ComboBox1_Change()
End Sub
Private Sub finalisercomande_Click()
End Sub
Private Sub llstock_Click()
End Sub
Private Sub UserForm_Initialize()
Sheets("commandetraitee").Activate
Dim VarDerLigne As Integer
Dim VarPlageList As String
VarDerLigne = Sheets("etatdustock").Range("A65536").End(xlUp).Row
VarPlageList = Sheets("etatdustock").Range("B2:B" & VarDerLigne).Address
llselectionarticle.RowSource = "etatdustock!" & VarPlageList
End Sub
Private Sub llselectionarticle_Click()
VarSelectedArticle = UserForm1.llselectionarticle.ListIndex + 2
llstock = Sheets("etatdustock").Range("D" & VarSelectedArticle).Value
If llstock = 0 Then
llreference = "Article non Dispo"
llprix.Visible = False
llquantite.Visible = False
llprixtotal.Visible = False
Else
llprix.Visible = True
llquantite.Visible = True
llprixtotal.Visible = True
llreference = Sheets("etatdustock").Range("A" & VarSelectedArticle).Value
llprix = Format(Sheets("etatdustock").Range("C" & VarSelectedArticle).Value, "#,##0.00")
llprixtotal = ""
llquantite = ""
llquantite.SetFocus
End If
End Sub
Private Sub llquantite_change()
Dim Chiffre As Integer
If llquantite = "" Then Exit Sub
On Error GoTo Sortie
Chiffre = llquantite
llprixtotal = Format(llprix * llquantite, 0#)
ajouterarticleboutton.Visible = True
Exit Sub
Sortie:
MsgBox "Saisir Uniquement un Entier Numérique"
End Sub
Private Sub ajouterarticleboutton_Click()
Dim VarDerL As Integer
Dim Quantite As Integer
Dim Stock As Integer
VarDerL = Sheets("commandetraitee").Range("B42").End(xlUp).Row + 1
If llquantite = "" Then
MsgBox "Vous Devez Saisir Une Quantité", vbCritical, "Erreur => Invalide"
llquantite.Visible = True
llquantite.SetFocus
Exit Sub
End If
If llquantite <= 0 Then
MsgBox "Vous Devez Saisir Une Valeur Positive ", vbCritical, "Invalide"
llquantite.Visible = True
llquantite = ""
llquantite.SetFocus
Exit Sub
End If
On Error GoTo Sortie
Quantite = llquantite
Stock = llstock
If Quantite > Stock Then
MsgBox "La quantité demandée " & llquantite & " est supérieur au stock " _
& llstock, vbCritical, "Aie=> Stock Insuffisant"
llquantite.Visible = True
llquantite = llstock
llquantite.SetFocus
Exit Sub
End If
If VarDerL = 1000 Then
MsgBox "Vous êtes arrivé à la dernière ligne de cette facture", vbCritical, "Thierry's Démo => Fin de Facture"
Exit Sub
End If
With Sheets("commandetraitee")
.Range("A" & VarDerL) = ComboBox1
.Range("B" & VarDerL) = llreference
.Range("C" & VarDerL) = llselectionarticle
.Range("E" & VarDerL) = llquantite
.Range("D" & VarDerL) = Format(llprix, 0#)
.Range("F" & VarDerL) = Format(llprixtotal, 0#)
End With
Sheets("etatdustock").Range("D" & VarSelectedArticle).Value = _
Sheets("etatdustock").Range("D" & VarSelectedArticle).Value - llstock
Exit Sub
Sortie:
MsgBox "Article mis dans le panier !", vbOKOnly, "Parfait"
End Sub
Private Sub retourparametrageee_Click()
UserForm1.Hide
userformparametrage.Show
End Sub
Private Sub UserForm_Click()
End Sub
Je vous join un screenshot pour que vous puissiez apprecier le concept et que ce sois plus clair pour vous
Merci beaucoup
Private Sub CommandButton1_Click()
Unload UserForm1
userformparametrage.Show
End Sub
Option Explicit
Dim VarSelectedArticle As Integer
Private Sub ComboBox1_Change()
End Sub
Private Sub finalisercomande_Click()
End Sub
Private Sub llstock_Click()
End Sub
Private Sub UserForm_Initialize()
Sheets("commandetraitee").Activate
Dim VarDerLigne As Integer
Dim VarPlageList As String
VarDerLigne = Sheets("etatdustock").Range("A65536").End(xlUp).Row
VarPlageList = Sheets("etatdustock").Range("B2:B" & VarDerLigne).Address
llselectionarticle.RowSource = "etatdustock!" & VarPlageList
End Sub
Private Sub llselectionarticle_Click()
VarSelectedArticle = UserForm1.llselectionarticle.ListIndex + 2
llstock = Sheets("etatdustock").Range("D" & VarSelectedArticle).Value
If llstock = 0 Then
llreference = "Article non Dispo"
llprix.Visible = False
llquantite.Visible = False
llprixtotal.Visible = False
Else
llprix.Visible = True
llquantite.Visible = True
llprixtotal.Visible = True
llreference = Sheets("etatdustock").Range("A" & VarSelectedArticle).Value
llprix = Format(Sheets("etatdustock").Range("C" & VarSelectedArticle).Value, "#,##0.00")
llprixtotal = ""
llquantite = ""
llquantite.SetFocus
End If
End Sub
Private Sub llquantite_change()
Dim Chiffre As Integer
If llquantite = "" Then Exit Sub
On Error GoTo Sortie
Chiffre = llquantite
llprixtotal = Format(llprix * llquantite, 0#)
ajouterarticleboutton.Visible = True
Exit Sub
Sortie:
MsgBox "Saisir Uniquement un Entier Numérique"
End Sub
Private Sub ajouterarticleboutton_Click()
Dim VarDerL As Integer
Dim Quantite As Integer
Dim Stock As Integer
VarDerL = Sheets("commandetraitee").Range("B42").End(xlUp).Row + 1
If llquantite = "" Then
MsgBox "Vous Devez Saisir Une Quantité", vbCritical, "Erreur => Invalide"
llquantite.Visible = True
llquantite.SetFocus
Exit Sub
End If
If llquantite <= 0 Then
MsgBox "Vous Devez Saisir Une Valeur Positive ", vbCritical, "Invalide"
llquantite.Visible = True
llquantite = ""
llquantite.SetFocus
Exit Sub
End If
On Error GoTo Sortie
Quantite = llquantite
Stock = llstock
If Quantite > Stock Then
MsgBox "La quantité demandée " & llquantite & " est supérieur au stock " _
& llstock, vbCritical, "Aie=> Stock Insuffisant"
llquantite.Visible = True
llquantite = llstock
llquantite.SetFocus
Exit Sub
End If
If VarDerL = 1000 Then
MsgBox "Vous êtes arrivé à la dernière ligne de cette facture", vbCritical, "Thierry's Démo => Fin de Facture"
Exit Sub
End If
With Sheets("commandetraitee")
.Range("A" & VarDerL) = ComboBox1
.Range("B" & VarDerL) = llreference
.Range("C" & VarDerL) = llselectionarticle
.Range("E" & VarDerL) = llquantite
.Range("D" & VarDerL) = Format(llprix, 0#)
.Range("F" & VarDerL) = Format(llprixtotal, 0#)
End With
Sheets("etatdustock").Range("D" & VarSelectedArticle).Value = _
Sheets("etatdustock").Range("D" & VarSelectedArticle).Value - llstock
Exit Sub
Sortie:
MsgBox "Article mis dans le panier !", vbOKOnly, "Parfait"
End Sub
Private Sub retourparametrageee_Click()
UserForm1.Hide
userformparametrage.Show
End Sub
Private Sub UserForm_Click()
End Sub