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 :
Je pense que c'est très basique, mais je ne m'y connais pas beaucoup en macro.
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
Quelqu'un pourrait-il me donner un coup de main ?
Merci d'avance.
Cordialement.
Partager