Bonjour,
Je suis novice en visual basic et je veux mettre au point une macro qui me permet de copier dans un classeur ouvert, une plage de donnée d'une feuille se trouvant dans un classeur fermer. Voilà le code que j'ai élaborer :
Je souhaiterais votre avis, c'est à dire si il est simplifiable et si vous voyez certaines erreurs. Le code semble s'exécuter comme il faut.
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 Option Explicit Sub Recuperer() 'declaration des variables Dim feuille_copier As Worksheet ' declaration de la feuille depuis laquelle les données sont copiees Dim feuille_copie As Worksheet ' declaration de la feuille dans laquelle on va copier les données Dim Dir As String ' declaration de la variable qui contiendra le chemin d'accès au fichier Dim classeur_copier As String ' declaration du classeur d'ou l'on va copier les données Dim classeur_copie As String 'declaration du classeur ou les données seront copier Dim plage_copier As String ' plage que l'on veut copier ' _________________ I Partie Modifiable__________________ Dir = "C:\Documents and Settings\...\Parcelle.xlsx" 'On selectionne le chemin d'acces aux fichier classeur_copier = "Parcelle.xlsx" ' classeur depuis lequel on va copier les données classeur_copie = "Classeur1.xlsm" ' classeur dans lequel on va copier les données plage_copier = "A1:O13" ' plage de la feuille que l'on veut copier ThisWorkbook.Activate 'permet de specifier que la feuille on l'on copie les données est dans le classeur contenant la macro Set feuille_copie = Worksheets("donnee_foret") ' nom de la feuille dans laquelle on va copier les données '________________________________________________________ 'On ouvre le classeur contenant les informations sur les communes et on les recopie sur la feuille donnee_commun Application.CutCopyMode = False 'evite de garder une copie des données dans le presse papier Application.DisplayAlerts = False ' enleve les message du presse papier Workbooks.Open Dir ' ouverture du classeur a copier '______________ II Partie a modifier__________________ Set feuille_copier = Worksheets("Parcelle_Requete") ' nom de la feuille depuis laquelle on va copier les données '____________________________________________________ feuille_copier.Select ' selectionne la feuille desiree pour le classeur qui a été ouvert Range(plage_copier).Copy ' copie la plage selectionner Workbooks(classeur_copie).Activate 'Rend le classeur ou l'on va copier actif feuille_copie.Paste 'Copie dans la selectionner dans le classeur copier Workbooks(classeur_copier).Close 'Ferme le classeur d'ou on a copier les données Application.DisplayAlerts = True Application.CutCopyMode = True End Sub
Cordialement![]()
Partager