1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pl As Range, c As Range, Reference As Range
Dim Ref_Active As String, Designation As String, Nb As String, Unite As String
'On défini la plage de travail
Set pl = Intersect(Target, Range("B3:B20"))
'On vérifie que si la plage sélectionnée (Target) se trouve dans la plage "pl"
If Not Intersect(Target, pl) Is Nothing Then
'On boucle sur les cellules modifiées
For Each c In pl
Ref_Active = Target.Value
'Si la valeur en cours n'est pas vide, on éxécute la suite.
If IsEmpty(Ref_Active) = False Then
'If Ref_Active <> "" Then
Set Reference = Sheets("calc prix vente").Range("B:B").Find(Ref_Active, , xlValues, xlWhole, , , False)
'On récupére les caractéristiques du produit
If Not Reference Is Nothing Then
Designation = Reference.Offset(0, 1).Value
Nb = Reference.Offset(0, 2).Value
Unite = Reference.Offset(0, 3).Value
'On Colle les Caractéristiques du produit sur la ligne
Application.EnableEvents = False
Target.Offset(0, 1).Value = Designation
Target.Offset(0, 2).Value = Nb
Target.Offset(0, 3).Value = Unite
Application.EnableEvents = True
End If
End If
Next c
End If
End Sub |
Partager