bonjour tout le monde

Je reviens avec une nouvelle formulation car il me semble que j'ai pas été clair lors de la premiére , je veux eviter de faire du copier coller des données avant de les traiter avec ma macro.

j'ai enregistré la macro sur le ruban mais elle ne fonctionne qu'avec le .xls sous lequel j'enregistre !!

est ce que je peux faire en sorte qu'elle fonctionne un n'importe qu'elle xls que j'ouvre ?
c'est surtout les lignes qui ne s'exécute pas!!!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Code = .Cells(Val.Row, 2).Value
     ThisWorkbook.Range("C" & ligne) = Code

merci



Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
42
43
44
45
46
47
48
49
Sub MEF()
    Dim CIBLE, Code As Variant
    Dim ligne As Integer
    Dim Val As Range
Worksheets(1).Columns("C:C").Insert Shift:=xlToRight
Worksheets(1).Columns("N:N").Insert Shift:=xlToRight
 
ThisWorkbook.Worksheets(1).Cells(1, 3) = "ARTICLE "
ThisWorkbook.Worksheets(1).Cells(1, 13) = "DATE"
 For ligne = 2 To Range("A" & Rows.Count).End(xlUp).Row
    If (IsEmpty(Range("A" & ligne))) Then
    'MsgBox "Code Article Manquant à la ligne " & ligne
    Exit Sub
    Else
    CIBLE = Range("A" & ligne)
    Range("M" & ligne) = Left(Range("M" & ligne).Value, 9)
 
If Split(UCase(Range("O" & ligne).Value), "/")(1) = "M" Then
       Range("L" & ligne).Value = Range("L" & ligne).Value / 1000
End If
Range("N" & ligne).Value = Format(Range("M" & ligne).Value, "yyyymm")
   Feuil1.Range("K" & ligne).NumberFormat = "###0"
       'MsgBox "Code Article " & CIBLE & " recherche"
        Call Find(CIBLE, Code, ligne)
 End If
Next ligne
End Sub
Sub Find(CIBLE, Code, ligne)
Dim x As Variant
Dim Val As Range
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
 Set wbk = Workbooks.Open("U:\redirection\reférence.xlsx")
 With wbk.Worksheets("Feuil1")
 Set Val = .Columns("A:A").Find(CIBLE, LookIn:=xlValues)
 If Not Val Is Nothing Then
   'MsgBox "Le Code Article" & CIBLE & "est dans la ligne: " & Val.Row
     Code = .Cells(Val.Row, 2).Value
     ThisWorkbook.Range("C" & ligne) = Code
        Else
    'MsgBox "Code Article " & CIBLE & " non trouvée dans la table de correspondance"
 End If
 End With
 wbk.Save
 wbk.Close
    Set wbk = Nothing
    Application.ScreenUpdating = True
 
End Sub