Bonjour à tous,

MarcelG m'a fait hier, une macro parfaite pour copier coller des données d'un classeur à un autre.
Le voici.


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
 
Public Sub essai2()
 
Dim tablo(1 To 12, 1 To 4)
 
Dim celcop As Range
 
With Workbooks("Classeur 2-1.xls").Sheets("Feuil1")
        For i = 2 To 13
                ladate = CDate("15 " & .Range("A" & i) & " 2011")
                tablo(i - 1, 1) = ladate
                tablo(i - 1, 2) = .Cells(i, 4) + .Cells(i, 2) + .Cells(i, 5)
                tablo(i - 1, 3) = .Cells(i, 3)
                tablo(i - 1, 4) = .Cells(i, 6)
         Next
End With
 
For j = 1 To 12
 
        Set celcop = Workbooks("Classeur 1-3.xls").Sheets("Feuil1").Range("A2:A65536").Find(tablo(j, 1), LookIn:=xlFormulas)
 
        For n = 1 To 3
                celcop.Offset(0, n) = tablo(j, n + 1)
        Next n
 
Next j
 
Erase tablo
 
Set celcop = Nothing
 
End Sub
Je tente depuis hier soir de le modifier pour copier coller d'une feuille à l'autre et avec plus de paramètres et ça me donne l'erreur d'exécution '91'.
Voici la petite modif.

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
Public Sub essai2()
 
Dim tablo(1 To 12, 1 To 10)
 
Dim celcop As Range
 
With ThisWorkbook.Sheets("Feuil3")
        For i = 2 To 13
                ladate = CDate("15 " & .Range("A" & i) & " 2011")
                tablo(i - 1, 1) = ladate
                tablo(i - 1, 2) = .Cells(i, 7)
                tablo(i - 1, 3) = .Cells(i, 7)
                tablo(i - 1, 4) = .Cells(i, 3) + .Cells(i, 5) + .Cells(i, 6)
                tablo(i - 1, 5) = .Cells(i, 4)
                tablo(i - 1, 6) = .Cells(i, 7)
                tablo(i - 1, 7) = .Cells(i, 7)
                tablo(i - 1, 8) = .Cells(i, 7)
                tablo(i - 1, 9) = .Cells(i, 7)
                tablo(i - 1, 10) = .Cells(i, 2)
 
         Next
End With
 
For j = 1 To 12
 
        Set celcop = ThisWorkbook.Sheets("Feuil1").Range("A2:A65536").Find(tablo(j, 1), LookIn:=xlFormulas)
 
        For n = 1 To 9
                celcop.Offset(0, n) = tablo(j, n + 1)
        Next n
 
Next j
 
Erase tablo
 
Set celcop = Nothing
 
End Sub
Je dois apprendre le langage VBA, d'ici fin Juillet ou au pire si c'est raté début Septembre.
Je commence à me dire que je n'y arriverais pas.

Quelqu'un aurait-il la clef s'il vous plaît?
Cordialement.