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 40 41
| Private Sub Worksheet_Change(ByVal Target As Range)
'+++++++++++++++++++++++++++++++++++++++++++++++Récupération désignation matière...+++++++++++++++++++++++++++++++++
Dim J As Long
Dim Cellule As Range
Dim Tabl As Variant
If Not Intersect(Target, [B20:B200]) Is Nothing Then
Tabl = [ListeDesArticlesAImporter].Value2 '"Value2" recopie toutes les décimales
If Target.Count > 1 Then 'cas de plusieurs cellules modifiées
For Each Cellule In Target.Cells 'on lit chaque cellule modifiée
For J = 1 To UBound(Tabl)
If Tabl(J, 2) = Cellule.Value2 Then ' And Tabl(i, 7) = [K11] Then 'Choix du fournisseur
Application.EnableEvents = False
Cellule.Offset(, 1) = Tabl(J, 3) 'colonne 1 (Désignation) par rapport à B = colonne 3 du tableau
Cellule.Offset(, 2) = Tabl(J, 5) 'colonne 2 (Matière)
Cellule.Offset(, 3) = Tabl(J, 6) 'colonne 3 (Traitement finition)
Cellule.Offset(, 6) = Tabl(J, 8) 'colonne 6 (PU HT)
Application.EnableEvents = True
Exit For
End If
Next J
Next
Else 'seulement une cellule modifiée
For J = 1 To UBound(Tabl)
If Tabl(J, 2) = Target.Value2 Then ' And Tabl(i, 7) = [K11] Then 'Choix du fournisseur
Application.EnableEvents = False
Target.Offset(, 1) = Tabl(J, 3) 'colonne 1 (Désignation) par rapport à B = colonne 3 du tableau
Target.Offset(, 2) = Tabl(J, 5) 'colonne 2 (Matière)
Target.Offset(, 3) = Tabl(J, 6) 'colonne 3 (Traitement finition)
Target.Offset(, 6) = Tabl(J, 8) 'colonne 6 (PU HT)
Application.EnableEvents = True
End If
Next J
End If
End If
End Sub |
Partager