Bonjour le forum,

J'ai créé une macro permettant d'extraire des données d'un classeur Excel nommé "Fiche anomalieV1.1.xlsm" vers un classeur Excel "Extraction.xlsx".

Je souhaite que la macro compte les lignes déjà utilisées et que les données soient copiées sur la première ligne vide du classeur de destination.
Donc la première série de données extraite sera placée dans les cellules A3:J3, la 2e dans les cellules A4:J4 ...

Pour ce faire, j'ai repris et bidouillé un code (à la fin du code à partir de With ActiveWorkbook.Sheets("Feuil1")). Mais, en combinant les deux, cela ne fonctionne pas :

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Sub Macro1()
'
 
    Dim i As Long
    Dim cel As Range
    Dim pl As Range
 
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("A9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("A3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("B9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("B3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("E8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("C3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("E9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("D3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("B13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("E3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("E13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("F3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("B15").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("G3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("E15").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("H3").Select
    ActiveSheet.Paste
 
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("B17").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("I3").Select
    ActiveSheet.Paste
 
    Windows("Fiche anomalieV1.1.xlsm").Activate
    Range("E17").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Extraction.xlsx").Activate
    Range("J3").Select
    ActiveSheet.Paste
 
    Range("A3:J3").Select
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
 
    Range("A3:J3").Select
    Selection.FormatConditions.Delete
 
    Range("A3:J3").Select
    Selection.Validation.Delete
 
    Range("A3:J3").Select
    Selection.ClearComments
 
 
    With ActiveWorkbook.Sheets("Feuil1")
    i = .UsedRange.Rows.Count 'compte le nombre de lignes déjà utilisées dans ce fichier
    For Each cel In pl
        cel.Copy .Cells(i + 1, 1)
        i = i + 1
    Next cel
    End With
 
    End Sub
Je pense que c'est très basique, mais je ne m'y connais pas beaucoup en macro.

Quelqu'un pourrait-il me donner un coup de main ?

Merci d'avance.

Cordialement.