Extraction de données d'un tableau Excel vers un autre
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:
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.