Bonjour,
Voilà, je suis novice en programmation vba mais j'aimerai copier tout les fichiers excel d'un repertoire vers un seul fichier excel.
Est-ce possible? Tout les fichiers excel ont le même format.
Merci d'avance.
Bonjour,
Voilà, je suis novice en programmation vba mais j'aimerai copier tout les fichiers excel d'un repertoire vers un seul fichier excel.
Est-ce possible? Tout les fichiers excel ont le même format.
Merci d'avance.
Bonjour,
Je n'ai pas regardé dans le détail mais ce sujet trouvé dans le Forum Contribuez devrait t'aider :
Copie des feuilles de tous les classeurs d'un répertoire dans 1 seul classeur
(en tout cas le titre ressemble beaucoup à ta problématique)
Alors, j'ai tester le code mais le souci c'est qu'il me copie toute les feuilles de données d'un classeur sur plusieurs feuille de données du fichier que je veux implémenter.
Par exemple sur feuille.xls, j'ai feuille1, feuille2 et feuille3
Et lors de l'implémentation du fichier feuilleImplementer.xls, j'ai feuille1, feuille2, feuille3, feuille1(1), feuille2(1), feuille3(1).
Alors que moi j'aimerai que dans la feuille1 de feuilleImplementer.xls, j'ai par exemple la cellule A1 de la feuille 1 de feuille.xls dans la cellule A2.
J'espére avoir été clair.
Merci d'avance.
Bien personnellement, non je ne comprends pas bien ce que tu veux
Sinon il y a cette autre contribution :
Copie des données de ttes feuilles de ts classeurs d'1 répertoire ds 1 feuille
Après si ces contributions ne font pas exactement ce que tu souhaites tu peux toujours les étudier et essayer de les modifier pour qu'elles fassent ce que tu veux.
Bonjour,
Après plusieurs rechercher, j'ai reussi à faire ce que je voulais. Voici le code :
Le seul souci c'est que j'aimerai que la macro s'execute lorsqu'on ouvre le fichier excel et quand elle s'execute que n'ouvre pas mais autre fichier.
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 Sub Appel() Dim FL1 As Worksheet, Chemin As String Application.ScreenUpdating = False 'Définir le répertoire Chemin = "C:\Program Files\EasyPHP 2.0b1\www\dossier\fichierExcel" 'Crée l'instance de la feuille récapitulative (FL1) Set FL1 = ThisWorkbook.Worksheets("Feuil1") Ouvrir Chemin, FL1 Application.ScreenUpdating = True End Sub Sub Ouvrir(Chemin As String, FL1 As Worksheet) Dim NomFich As String NomFich = Dir(Chemin & "\") If NomFich = "" Then MsgBox "Aucun fichier n'a été trouvé." Do While NomFich <> "" Workbooks.Open Chemin & "\" & NomFich DoEvents NomFich = ActiveWorkbook.Name Copie NomFich, FL1 NomFich = Dir Loop End Sub Sub Copie(NomFich As String, FL1 As Worksheet) For Each LaFeuille In Workbooks(NomFich).Worksheets 'pour copier le contenu de chaque feuille à la suite derlig = FL1.Cells(Rows.Count, 1).End(xlUp).Row + 1 Dim i As Integer i = 12 Dim j As Integer j = 1 Do While LaFeuille.Cells(i, 1) <> "" LaFeuille.Range("C8").Copy FL1.Range("A" & derlig & ":A" & derlig + j).PasteSpecial Paste:=xlValues LaFeuille.Range("E5").Copy FL1.Range("B" & derlig & ":B" & derlig + j).PasteSpecial Paste:=xlValues LaFeuille.Range("A11:A" & i).Copy FL1.Range("C" & derlig).PasteSpecial Paste:=xlValues LaFeuille.Range("C11:C" & i).Copy FL1.Range("D" & derlig).PasteSpecial Paste:=xlValues LaFeuille.Range("D11:D" & i).Copy FL1.Range("E" & derlig).PasteSpecial Paste:=xlValues LaFeuille.Range("E11:E" & i).Copy FL1.Range("F" & derlig).PasteSpecial Paste:=xlValues i = i + 1 j = j + 1 Loop DoEvents Next ActiveWorkbook.Close False DoEvents End Sub
Merci d'avance.
Pour que la macro s'exécute à l'ouverture du fichier il faut regarder l'évènement Workbook_Open (Voir les évènements du classeur, II-12. Workbook_Open ).
Pour lire sans ouvrir les fichiers (si j'ai bien compris car ta phrase est étrange) : Lire et écrire dans les classeurs Excel fermés
Partager