Bonjour tout le monde !!
j'essaie de finir une fonction qui va reporter les champs correspondant à chaque code trouvé dans le classeur destination .
l'idée est de parcourir tout les codes de la colonne A du classeur source et de faire une recherche dans le classeur destination .
le soucis que j'ai en ce moment est que je dois désigner le classeur à partir du quelle je lance la recherche car la boucle s’exécute sur le classeur cible!!!
je vous remercie de votre collaboration.
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
50 Private Sub Reporter() Dim cible As Variant Dim ligne As Integer Dim bat As Variant Dim pr As String For ligne = 4 To 10 If (IsEmpty(Range("A" & ligne))) Then MsgBox "Code Article Manquant à la ligne " & ligne Exit Sub Else cible = Range("A" & ligne) prs = Range("D" & ligne) End If If (IsEmpty(Range("F" & ligne))) Then batch = Range("E" & ligne) Else batch = Range("F" & ligne) End If Call test(cible, pr, bat) Next ligne End Sub Sub test(cible, pr, bat) Dim x As Variant Dim Val As Range Application.ScreenUpdating = False Application.DisplayAlerts = False Set wbk = Workbooks.Open("C:\Documents and Settings\FR22034\Bureau\Quotationtemplate_Rev05.xlsm", IgnoreReadOnlyrecommended:=True, WriteResPassword:="pg") With wbk.Worksheets("Cables data") Set Val = .Columns("c:c").Find(cible, LookIn:=xlValues) If Not Val Is Nothing Then MsgBox "Le Code Article" & cible & "est dans la ligne: " & Val.Row .Cells(Val.Row, 11).Value = pr .Cells(Val.Row, 12).Value = bat .Cells(Val.Row, 13).Value = Format(Now(), "dd-mmmm-yy") Else MsgBox "Code Article " & cible & " non trouvée." End If End With wbk.Save wbk.Close Set wbk = Nothing Application.ScreenUpdating = True End Sub
Partager