Sale
Bonjour tout le monde !
voilà ce que je dois faire.
J'ai un fichier contenant une feuille d'articles et une feuille de clients, avec cela je dois faire une vente.
Donc le procedé est simple, lors d'une vente, il faut les information du client, de l'article + la quantité soustrait de la "base de données" et une addition sur le client tout ca copié dans une autre feuille (Sale), rien de plus (pour la manip)
Par contre là ou je bloque c'est que j'ai créé un form où l'on inscrit juste le code bar de chacun (article & client) et la quantité vendu. Pour rendre les choses plus clair j'ai pensé a un label positionné a côté de chaque txtbox (pour les codes bar) qui donnerai le nom de l'article et le nom/prénom du client, si il ne trouve pas le code bar correspondant, le txtbox devient rouge...le hic c'est que je ne sais pas du tout comment faire...
SO PLEASE EXCEL-PRATIQUE, PIMP MY EXCEL FILE !!!!
Bonjour rimback, forum,
Essaie avec ce code :
Private Sub TbxBCArticle_Change()
Dim derlign As Long
Dim c As Range
derlign = Sheets("Articles").Range("a65536").End(xlUp).Row
If TbxBCArticle = "" Then Label4.BackColor = &H8000000F: Label4.Caption = "": Exit Sub
With Sheets("Articles").Range("a2:a" & derlign) 'plage de recherche du code-barre
Set c = .Find(TbxBCArticle, LookIn:=xlValues, LookAt:=xlWhole)
With Label4
If Not c Is Nothing Then 'si le code-barre est trouvé
.Caption = c.Offset(, 1) 'on met le nom de l'article dans le Label4
.BackColor = RGB(0, 255, 0) 'vert
Else
.BackColor = RGB(255, 0, 0) 'rouge
.Caption = "Article not found"
End If
End With
End With
End Sub
Private Sub TbxBCCust_Change()
Dim derlign As Long
Dim c As Range
derlign = Sheets("Customers").Range("a65536").End(xlUp).Row
If TbxBCCust = "" Then Label5.BackColor = &H8000000F: Label5.Caption = "": Exit Sub
With Sheets("Customers").Range("a2:a" & derlign)
Set c = .Find(TbxBCCust, LookIn:=xlValues, LookAt:=xlWhole)
With Label5
If Not c Is Nothing Then
.Caption = c.Offset(, 1) & " " & c.Offset(, 2)
.BackColor = RGB(0, 255, 0) 'vert
Else
.BackColor = RGB(255, 0, 0) 'rouge
.Caption = "Customer not found"
End If
End With
End With
End SubBonjour vba-new, merci pour le code ca marche comme ca !
par contre j'ai aussi remarqué que j'avais de la peine a trouver comment coder lors de la sauvegarde pour qu'il prenne les informations de la ligne (dans a feuille articles et customers) pour l'inserer dans la feuille sale.
on doit effectuer une nouvelle recherche ? (find)
ou on peu récuperer les informations directement avec ce que l'on a déjà ?
Bonne journée
Re, rimback,
Pour faire plus simple et pour être sûr, vaut mieux refaire une recherche. Voici le code du bouton save :
Private Sub BtSave_Click()
Dim derlign0 As Long, derlign1 As Long, derlign2 As Long
Dim c As Range, a As Range
derlign0 = Sheets("Sale").Range("a65536").End(xlUp).Row + 1
derlign1 = Sheets("Customers").Range("a65536").End(xlUp).Row
derlign2 = Sheets("Articles").Range("a65536").End(xlUp).Row
With Sheets("Customers").Range("a2:a" & derlign1) 'plage de recherche du code-barre pour le customer
Set c = .Find(TbxBCCust, LookIn:=xlValues, LookAt:=xlWhole)
End With
With Sheets("Articles").Range("a2:a" & derlign2) 'plage de recherche du code-barre pour l'article
Set a = .Find(TbxBCArticle, LookIn:=xlValues, LookAt:=xlWhole)
End With
With Sheets("Sale")
If Not c Is Nothing And Not a Is Nothing And TbxSold <> "" Then
.Cells(derlign0, 1) = c.Value
.Cells(derlign0, 2) = c.Offset(, 1)
.Cells(derlign0, 3) = c.Offset(, 2)
.Cells(derlign0, 4) = a.Value
.Cells(derlign0, 5) = a.Offset(, 1)
.Cells(derlign0, 6) = TbxSold
Else
MsgBox "Some informations not found", vbExclamation
End If
End With
End SubLa condition requise pour que les données soient enregistrées c'est que les 2 codes-barres doivent être trouvés (Customer ET Article) et une quantité doit être saisie. Sinon un message "Some informations not found" apparaît.
Ok ! pas mal du tout ! merci vba-new !