Private Sub TxtDesignation_Change()
'permet de faire la recherche verticale pour avoir le prix de vente unitaire de la désignation
Dim Cellule_en_Cours As Range 'déclaration d'un objet range
On Error Resume Next 'si erreur passe ligne suivante
Set Cellule_en_Cours = Feuil2.Columns("A:A").Find(What:=Me.TxtDesignation, After:=Feuil2.Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 'référence la première cellule de Feuil2.Columns("A:A") égale à Me.TxtDesignation, renvoie une erreur si non trouvé
If Cellule_en_Cours Is Nothing Then MsgBox "Référence introuvable : " & Me.TxtDesignation, vbOKOnly + vbInformation: Exit Sub 'si la cellule n'est pas trouvée message et sortie
On Error GoTo 1
Me.TxtPrixAchatUnite = Cellule_en_Cours.Range("G1").Value ' prend la valeur de G1 en décalage à cellule_en_cours, comme cellule_en_cours est colonne A, la valeur renvoyée correspond colonne G, pareil que Cellule_en_cours.offset(0,6).value
Me.TxtMarge = Cellule_en_Cours.Range("H1").Value ' prend la valeur de H1 en décalage à cellule_en_cours, comme cellule_en_cours est colonne A, la valeur renvoyée correspond colonne H, pareil que Cellule_en_cours.offset(0,7).value
If Application.WorksheetFunction.Sum(Cellule_en_Cours.Range("B1:F1")) = 0 Then 'vérifies la somme de B1:F1 en rapport à Cellule_en_cours, en exemple si cellule_en_cours était colonne B, renverrait la somme de C1:G1
Me.TxtPrixVenteUnite = Me.TxtQte * Cellule_en_Cours.Range("G1").Value
Else
Me.TxtPrixVenteUnite = Me.TxtQte / Application.WorksheetFunction.Sum(Cellule_en_Cours.Range("B1:F1")) * Cellule_en_Cours.Range("I1").Value
End If
Me.TxtPrixVenteUnite = Round(Me.TxtPrixVenteUnite.Value, 2)
1
Me.TxtPrixVenteTotal = CDec(Me.TxtQte) * CDec(Me.TxtPrixVenteUnite)
Me.TxtPrixVenteTotal = Round(Me.TxtPrixVenteTotal.Value, 2)
End Sub