Sub Copysource()
Dim Fichier$, WbSource As Workbook, WbStock As Workbook
Dim derlig&, x&, plage As Range, cel As Range, critere
'définir le classeur destination
Fichier = ThisWorkbook.Path & "\source.xlsx"
'définir le classeur source
Set WbSource = Application.Workbooks.Open(Fichier)
x = 3
derlig = WbSource.Sheets("Feuil1").Range("a" & Rows.Count).End(xlUp).Row
plage = WbSource.Sheets("Feuil1").Range("a2:a" & derlig)
Set WbStock = ThisWorkbook
'Ici il te faut créer une liste déroulante avec les numéro d'article sans doublons
critere = WbStock.Sheets("stock").Range("m3")
Set cel = plage.Find(critere, , xlValues)
If Not cel Is Nothing Then
premaddress = cel.Address
Do
x = x + 1
With WbStock.Sheets("extract")
.Range("a" & x) = cel.Offset(0, 0).Value 'n° article
.Range("b" & x).Value = cel.Offset(0, 1).Value 'en magasin
.Range("c" & x).Value = cel.Offset(0, 2).Value 'en production
.Range("d" & x).Value = cel.Offset(0, 3).Value 'autre
End With
Set cel = plage.FindNext(cel)
Loop While Not cel Is Nothing And cel.Address <> premaddress
End If
source.Close False
MsgBox "Copie Finie", , "Mise à jour stock"
End Sub