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 :

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
Merci d'avance pour votre aide!