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

33salef.zip (8.44 Ko)

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 Sub

Bonjour 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 Sub

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

Rechercher des sujets similaires à "sale"