Bonjour à tous,
Je viens vers vous après de longues heures de réflexion et de retouches sur une macro....
Son but est d'ouvrir chaque fichier d'un dossier et de réaliser une série de copier/coller vers un unique fichier afin de centraliser l'ensemble des données.
Lorsque je lance la macro il n'y a pas de bug, elle se déroule bien du début à la fin. Le problème est qu'à la fin de la macro rien n'a été collé.
J'ai fait des tests et j'ai vu qu'en fait la macro faisait le copier/coller sur le fichier ayant pour but centraliser l'ensemble des données alors qu'elle devrait réaliser le copier sur le fichier ouvert dans le dossier et le coller dans le fichier prévu à cet effet.
Il ne doit pas manquer grand chose mais là je ne vois plus trop...alors je me tourne vers des personnes plus expérimentées!!
Je suis conscient que ma macro est un peu bidouillée et qu'il y sûrement moyen de la rendre plus efficace...je suis ouvert à toute proposition d'amélioration
La voici :
Merci d'avance pour votre aide!
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 Private Sub CommandButton1_Click() ' Permet d'ouvrir plusieurs fichiers dans un répertoire ' GC Excel - 2011-11-16 Dim Dossier As Object Dim Fichiers As Object Dim Fichier As Object Dim Nom_Dossier As String Dim système As Object Dim Nom_Fichier As String Nom_Dossier = "C:\Users\FABIEN\Desktop\Enquete client" Set système = CreateObject("Scripting.FileSystemObject") Set Dossier = système.GetFolder(Nom_Dossier) Set Fichiers = Dossier.Files For Each Fichier In Fichiers Nom_Fichier = Nom_Dossier & "\" & Fichier.Name Workbooks.Open Filename:=Nom_Fichier ' Votre code ici 'Déclaration =============== Dim i As Long Dim r As Long Dim plage As Range r = 9 'MEI ======================= For i = 9 To 453 Step 12 'valeur de X commence à 9 jusqu'a 453 par saut de 12 Workbooks(Fichier.Name).Activate With Workbooks(Fichier.Name) Set plage = Range(Cells(i, 2), Cells(i + 4, 2)) plage.Copy End With 'Selection de la plage de cellules et copie Workbooks("Analyse pour le réseau.xlsm").Activate With Workbooks("Analyse pour le réseau.xlsm") Cells(r, 2).PasteSpecial Paste:=xlPasteValues 'Coller la plage dans la feuille enquete client r = r + 8 End With Next i Workbooks(Fichier.Name).Close False 'Fermer le fichier Next Fichier End Sub
Partager