Bonjour,
je suis débutant en VBA, et j'ai commencé a faire une macro permettant de copier la ligne d'un classeur sur un autre si celles-ci sont différentes l'une de l'autre, cependant quand j'execute ma fonction j'ai une erreur 1004 la méthode close de l'objet workbook a échoué, pouvez vous m'aider svp ?


Voici le bout de code:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Dim Fic18 As String

Fic18 = "XX.xls"
Sh18 = "XX"

Workbooks.Open (Fic18)
If ActiveSheet.ProtectContents = True Then

    Workbooks(Fic18).Worksheets(Sh18).Unprotect Password:="xxxxxxx"

     etaitprotege = 1

End If

                            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

For Ligne = 3 To Max

     If Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("K" & Ligne) = "S" Then

          Num = Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("J" & Ligne).Value

          If Num > 0 And Not IsEmpty(Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("J" & Ligne)) Then
                R = Num

          End If

                             ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

            Work = Workbooks(Fic18).Worksheets(Sh18).Range("G" & R)
            Depart = Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("G" & Ligne)
            Tech2 = Workbooks(Fic18).Worksheets(Sh18).Range("I" & R)
            Tech1 = Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("I" & Ligne)
            com1 = Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("L" & Ligne)
            com2 = Workbooks(Fic18).Worksheets(Sh18).Range("L" & R)


                                ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

            If Depart <> Work Then
                    Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("G" & Ligne).Copy Workbooks(Fic18).Worksheets(Sh18).Range("G" & R)

                               
            End If

            If com1 <> com2 Then
                Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("L" & Ligne).Copy Workbooks(Fic18).Worksheets(Sh18).Range("L" & R)
                           
            End If

            If Tech1 <> Tech2 Then
                Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("I" & Ligne).Copy Workbooks(Fic18).Worksheets(Sh18).Range("I" & R)
                         

            End If

            If IsEmpty(Workbooks("Récapitulatif.xls").Worksheets("Feuil1").Range("K" & Ligne)) Then
                
                Exit For
            End If
        End If

Next Ligne
    
If etaitprotege = 1 Then

       Workbooks(Fic18).Worksheets(Sh18).Protect Password:="xxxxxxxx"
       etaitprotege = 0

End If
        
                Workbooks(Fic18).Activate
                Workbooks(Fic18).Save
                Workbooks(Fic18).Close
le débugger me surligne celle que j'ai souligné/gras/italique


Vous en remerciant

moa131