Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : Rassembler plusieurs fichiers Excel

4 réponses
Avatar
Isa
Bonjour,

Tout d'abord, je vous remercie pour vos conseils pour la création d'une
nouvelle feuille avec copie des données d'une autre feuille, j'ai réussi à
faire ce que je désirais (Jacquouille, merci, j'ai du être touchée par la
grâce divine ;-))).

Maintenant, je dois passer une autre étape qui est la suivante :
Dans un répertoire, j'ai x fichiers Excel, tous avec une feuille nommée
IMPORT.
Je dois créer un nouveau fichier Excel regroupant les données de ces
feuilles IMPORT (Je ne dois prendre que certaines données).
Ma question est essentiellement comment faire pour naviguer d'un fichier à
un autre. Je suppose qu'il y a un type d'objet fichier...
D'avance merci de vos réponses.

Isa.

4 réponses

Avatar
francois.forcet
On 18 fév, 10:32, Isa wrote:
Bonjour,

Tout d'abord, je vous remercie pour vos conseils pour la création d'une
nouvelle feuille avec copie des données d'une autre feuille, j'ai réus si à
faire ce que je désirais (Jacquouille, merci, j'ai du être touchée p ar la
grâce divine ;-))).

Maintenant, je dois passer une autre étape qui est la suivante :
Dans un répertoire, j'ai x fichiers Excel, tous avec une feuille nommé e
IMPORT.
Je dois créer un nouveau fichier Excel regroupant les données de ces
feuilles IMPORT (Je ne dois prendre que certaines données).
Ma question est essentiellement comment faire pour naviguer d'un fichier à
un autre. Je suppose qu'il y a un type d'objet fichier...
D'avance merci de vos réponses.

Isa.


Salut Isa

Ce code ouvre tous les fichiers Excel d'un répertoire :

With Application.FileSearch
.LookIn = "C:Chemin"
.FileType = msoFileTypeExcelWorkbooks
.Execute
End With
With Application.FileSearch
For I = 1 To .FoundFiles.Count
.Application.Workbooks.Open Filename:="C:Chemin" &
Mid(.FoundFiles(I), Len(.LookIn) + 2)
Next I
End With

Tu pourrais peut être l'adapter à ton besoin

Dis moi !!!!

Avatar
isabelle
bonjour Isa,

voici un exemple avec FileSearch,
j'ai supposé qu'il n'y avait qu'un seul onglet par fichier
et que la plage A1:B10 de chaque fichier étaient copier sur le Classeur1, Feuill1

Sub bachfile()
Set fs = Application.FileSearch
With fs
.LookIn = "C:zaza"
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
' MsgBox .FoundFiles(i)
Workbooks.Open Filename:=.FoundFiles(i)
x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
Range("A1:B10").Copy Workbooks("Classeur1").Sheets("Feuil1").Range("A" & x)
ActiveWorkbook.Close SaveChanges:úlse
Next i
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub

isabelle

Bonjour,

Tout d'abord, je vous remercie pour vos conseils pour la création d'une
nouvelle feuille avec copie des données d'une autre feuille, j'ai réussi à
faire ce que je désirais (Jacquouille, merci, j'ai du être touchée par la
grâce divine ;-))).

Maintenant, je dois passer une autre étape qui est la suivante :
Dans un répertoire, j'ai x fichiers Excel, tous avec une feuille nommée
IMPORT.
Je dois créer un nouveau fichier Excel regroupant les données de ces
feuilles IMPORT (Je ne dois prendre que certaines données).
Ma question est essentiellement comment faire pour naviguer d'un fichier à
un autre. Je suppose qu'il y a un type d'objet fichier...
D'avance merci de vos réponses.

Isa.


Avatar
Isa
Merci pour vos conseils.
Je coince à un endroit :
Je dois rassembler toutes les données de la feuille nommée IMPORT de tous
les fichiers du répertoire, sauf le fichier global qui va tout rassembler
(c'est le fichier sur lequel je vais exécuter le programme).

Comment puis-je exclure ce fichier, il s'appelle global.xls ?
Merci.

"isabelle" wrote:

bonjour Isa,

voici un exemple avec FileSearch,
j'ai supposé qu'il n'y avait qu'un seul onglet par fichier
et que la plage A1:B10 de chaque fichier étaient copier sur le Classeur1, Feuill1

Sub bachfile()
Set fs = Application.FileSearch
With fs
.LookIn = "C:zaza"
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
' MsgBox .FoundFiles(i)
Workbooks.Open Filename:=.FoundFiles(i)
x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
Range("A1:B10").Copy Workbooks("Classeur1").Sheets("Feuil1").Range("A" & x)
ActiveWorkbook.Close SaveChanges:úlse
Next i
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub

isabelle

Bonjour,

Tout d'abord, je vous remercie pour vos conseils pour la création d'une
nouvelle feuille avec copie des données d'une autre feuille, j'ai réussi à
faire ce que je désirais (Jacquouille, merci, j'ai du être touchée par la
grâce divine ;-))).

Maintenant, je dois passer une autre étape qui est la suivante :
Dans un répertoire, j'ai x fichiers Excel, tous avec une feuille nommée
IMPORT.
Je dois créer un nouveau fichier Excel regroupant les données de ces
feuilles IMPORT (Je ne dois prendre que certaines données).
Ma question est essentiellement comment faire pour naviguer d'un fichier à
un autre. Je suppose qu'il y a un type d'objet fichier...
D'avance merci de vos réponses.

Isa.





Avatar
isabelle
bonjour Isa,

voici la modification,

Sub bachfile()
Set fs = Application.FileSearch
With fs
.LookIn = "C:zaza"
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
' MsgBox .FoundFiles(i)
If .FoundFiles(i) <> "Czazaglobal.xls" Then '<----------Test sur global.xls
Workbooks.Open Filename:=.FoundFiles(i)
x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
Range("A1:B10").Copy Workbooks("Classeur1").Sheets("Feuil1").Range("A" & x)
ActiveWorkbook.Close SaveChanges:úlse
End If
Next i
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub


isabelle

Merci pour vos conseils.
Je coince à un endroit :
Je dois rassembler toutes les données de la feuille nommée IMPORT de tous
les fichiers du répertoire, sauf le fichier global qui va tout rassembler
(c'est le fichier sur lequel je vais exécuter le programme).

Comment puis-je exclure ce fichier, il s'appelle global.xls ?
Merci.

"isabelle" wrote:

bonjour Isa,

voici un exemple avec FileSearch,
j'ai supposé qu'il n'y avait qu'un seul onglet par fichier
et que la plage A1:B10 de chaque fichier étaient copier sur le Classeur1, Feuill1

Sub bachfile()
Set fs = Application.FileSearch
With fs
.LookIn = "C:zaza"
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
' MsgBox .FoundFiles(i)
Workbooks.Open Filename:=.FoundFiles(i)
x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
Range("A1:B10").Copy Workbooks("Classeur1").Sheets("Feuil1").Range("A" & x)
ActiveWorkbook.Close SaveChanges:úlse
Next i
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub

isabelle

Bonjour,

Tout d'abord, je vous remercie pour vos conseils pour la création d'une
nouvelle feuille avec copie des données d'une autre feuille, j'ai réussi à
faire ce que je désirais (Jacquouille, merci, j'ai du être touchée par la
grâce divine ;-))).

Maintenant, je dois passer une autre étape qui est la suivante :
Dans un répertoire, j'ai x fichiers Excel, tous avec une feuille nommée
IMPORT.
Je dois créer un nouveau fichier Excel regroupant les données de ces
feuilles IMPORT (Je ne dois prendre que certaines données).
Ma question est essentiellement comment faire pour naviguer d'un fichier à
un autre. Je suppose qu'il y a un type d'objet fichier...
D'avance merci de vos réponses.

Isa.