Bonjour,
J’essaie de coder une macro qui me permettrait de copier les données d’une plage de cellule d’un classeur fermé vers un le classeur dans lequel je lance la macro.
La plage de cellules est variable en lignes, en colonne elle va de A2 :Y2
Voici les débuts de mon codes mais j’ai plusieurs souci :
- je suis obligé d’ouvrir les deux fichiers pour travailler et
- pour la copie en gros j’ai fait une liaison avec un autofill par colonne, c’est assez galère quand on a 24 colonnes. Utiliser la fonction copy ça serait pas mieux ?
Merci d’avance pour tout aide ou suggestion.
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 Sub Copie() 'Calcul nombre de ligne à copier (bizarrement il faut avoir incidents.xls déjà ouvert même quand on est dans le même dossier) Dim drLig As Long drLig = Workbooks("incidents.xls").Sheets("OASIS").Range("A" & Rows.Count).End(xlUp).Row MsgBox (drLig) 'Désactive actualisation de l'écran pendant execution de la macro (optionel - voir si gain de perf) Application.ScreenUpdating = False 'Copie des cellules depuis fichier source Range("A2:A" & drLig).FormulaR1C1 = "=[incidents.xls]OASIS!RC" 'Remplissage de ces colones (sûrement à revoir) Range("A2").AutoFill Destination:=Range("A2:A" & drLig) 'A recopier 24 fois pour avoir jusqu'à la colonne Y (Fastidieux !!) 'Redimensionnement des colonnes 'Columns("A:AG").EntireColumn.AutoFit 'Actualisation tous les TCD ActiveWorkbook.RefreshAll Application.ScreenUpdating = True End Sub
Partager