Je coince toujours :
Dans ton exemple tu mets :
x =
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
=> ça signifie que tu prends la dernière ligne écrite + 1 pour avoir la 1ère
ligne disponible ?
Ensuite dans mes feuilles IMPORT que je dois rassembler, je n'ai pas le même
nb de lignes à copier, ça dépend du fichier : ça commence toujours en A2 et
ça finit en F...
Comment puis-je chercher la dernière cellule remplie ?
De plus, comment fait-on pour qu'il ne tienne pas compte des Majuscules /
Minuscules dans la comparaison de chaînes de caractères ? (car si mon
Global.xls contient des majuscules, il faut l'écrire pile pile pareil.)
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) <> "C\zaza\global.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:=False
End If
Next i
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub
isabelle
Isa a écrit :
> 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:=False
>> Next i
>> If .FoundFiles.Count = 0 Then
>> MsgBox "Aucun fichier n'a été trouvé."
>> End If
>> End With
>> End Sub
>>
>> isabelle
>>
>> Isa a écrit :
>>> 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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Isa
J'ai l'erreur "L'indice n'appartient pas à la sélection" sur ce code : x = Workbooks(.FoundFiles(i)).Sheets("IMPORT").Range("A65536").End(xlUp).Row + 1
Avez-vous une idée ? Merci.
"Isa" wrote:
Merci Isabelle pour tes conseils.
Je coince toujours : Dans ton exemple tu mets : x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 => ça signifie que tu prends la dernière ligne écrite + 1 pour avoir la 1ère ligne disponible ?
Ensuite dans mes feuilles IMPORT que je dois rassembler, je n'ai pas le même nb de lignes à copier, ça dépend du fichier : ça commence toujours en A2 et ça finit en F... Comment puis-je chercher la dernière cellule remplie ?
De plus, comment fait-on pour qu'il ne tienne pas compte des Majuscules / Minuscules dans la comparaison de chaînes de caractères ? (car si mon Global.xls contient des majuscules, il faut l'écrire pile pile pareil.)
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.
J'ai l'erreur "L'indice n'appartient pas à la sélection" sur ce code :
x = Workbooks(.FoundFiles(i)).Sheets("IMPORT").Range("A65536").End(xlUp).Row
+ 1
Avez-vous une idée ?
Merci.
"Isa" wrote:
Merci Isabelle pour tes conseils.
Je coince toujours :
Dans ton exemple tu mets :
x =
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
=> ça signifie que tu prends la dernière ligne écrite + 1 pour avoir la 1ère
ligne disponible ?
Ensuite dans mes feuilles IMPORT que je dois rassembler, je n'ai pas le même
nb de lignes à copier, ça dépend du fichier : ça commence toujours en A2 et
ça finit en F...
Comment puis-je chercher la dernière cellule remplie ?
De plus, comment fait-on pour qu'il ne tienne pas compte des Majuscules /
Minuscules dans la comparaison de chaînes de caractères ? (car si mon
Global.xls contient des majuscules, il faut l'écrire pile pile pareil.)
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.
J'ai l'erreur "L'indice n'appartient pas à la sélection" sur ce code : x = Workbooks(.FoundFiles(i)).Sheets("IMPORT").Range("A65536").End(xlUp).Row + 1
Avez-vous une idée ? Merci.
"Isa" wrote:
Merci Isabelle pour tes conseils.
Je coince toujours : Dans ton exemple tu mets : x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 => ça signifie que tu prends la dernière ligne écrite + 1 pour avoir la 1ère ligne disponible ?
Ensuite dans mes feuilles IMPORT que je dois rassembler, je n'ai pas le même nb de lignes à copier, ça dépend du fichier : ça commence toujours en A2 et ça finit en F... Comment puis-je chercher la dernière cellule remplie ?
De plus, comment fait-on pour qu'il ne tienne pas compte des Majuscules / Minuscules dans la comparaison de chaînes de caractères ? (car si mon Global.xls contient des majuscules, il faut l'écrire pile pile pareil.)
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.
isabelle
bonjour Isa,
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) <> "Czazaxx.xls" Then Workbooks.Open Filename:=.FoundFiles(i) x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 y = ActiveSheet.Range("A65536").End(xlUp).Row Range("A1:F" & y).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 Isabelle pour tes conseils.
Je coince toujours : Dans ton exemple tu mets : x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 => ça signifie que tu prends la dernière ligne écrite + 1 pour avoir la 1ère ligne disponible ?
Ensuite dans mes feuilles IMPORT que je dois rassembler, je n'ai pas le même nb de lignes à copier, ça dépend du fichier : ça commence toujours en A2 et ça finit en F... Comment puis-je chercher la dernière cellule remplie ?
De plus, comment fait-on pour qu'il ne tienne pas compte des Majuscules / Minuscules dans la comparaison de chaînes de caractères ? (car si mon Global.xls contient des majuscules, il faut l'écrire pile pile pareil.)
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.
bonjour Isa,
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) <> "Czazaxx.xls" Then
Workbooks.Open Filename:=.FoundFiles(i)
x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
y = ActiveSheet.Range("A65536").End(xlUp).Row
Range("A1:F" & y).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 Isabelle pour tes conseils.
Je coince toujours :
Dans ton exemple tu mets :
x =
Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
=> ça signifie que tu prends la dernière ligne écrite + 1 pour avoir la 1ère
ligne disponible ?
Ensuite dans mes feuilles IMPORT que je dois rassembler, je n'ai pas le même
nb de lignes à copier, ça dépend du fichier : ça commence toujours en A2 et
ça finit en F...
Comment puis-je chercher la dernière cellule remplie ?
De plus, comment fait-on pour qu'il ne tienne pas compte des Majuscules /
Minuscules dans la comparaison de chaînes de caractères ? (car si mon
Global.xls contient des majuscules, il faut l'écrire pile pile pareil.)
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.
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) <> "Czazaxx.xls" Then Workbooks.Open Filename:=.FoundFiles(i) x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 y = ActiveSheet.Range("A65536").End(xlUp).Row Range("A1:F" & y).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 Isabelle pour tes conseils.
Je coince toujours : Dans ton exemple tu mets : x = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 => ça signifie que tu prends la dernière ligne écrite + 1 pour avoir la 1ère ligne disponible ?
Ensuite dans mes feuilles IMPORT que je dois rassembler, je n'ai pas le même nb de lignes à copier, ça dépend du fichier : ça commence toujours en A2 et ça finit en F... Comment puis-je chercher la dernière cellule remplie ?
De plus, comment fait-on pour qu'il ne tienne pas compte des Majuscules / Minuscules dans la comparaison de chaînes de caractères ? (car si mon Global.xls contient des majuscules, il faut l'écrire pile pile pareil.)
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.