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

regroupement de plusieurs fichiers

24 réponses
Avatar
clyver
Bonjour le forum d'entraide,

J'ai un besoin de regroupement de plusieurs fichiers:

Sur un regroupements d'une dizaine de fichiers que je veux cibl=E9 dans
des r=E9pertoires d=E9fini sachant que dans ces r=E9pertoires j'ai d'autre
fichiers que je ne veux pas requ=EAter.

exemple mais fichiers se trouve dans :
S:\Suivis\FaD\384x298 LTW\384x298 LTW CANTO.xls
S:\Suivis\FaD\520x612 MW\520x612 MW-CH111.xls
S:\Suivis\FaD\MIPOD\MIPOD-CH286A.xls

PS : tous les fichiers on, une feuille nomm=E9e (FAD)
avec en titre colonne A =3D> ann=E9e, en B =3D> mois, en C =3D> n=B0 de la
semaine


Le besoin serait de regrouper tout les fichiers par rapport =E0 l'ann=E9e
et le N=B0 de semaine.
http://cjoint.com/?jpszQoi3OX

cordialament

Franck

10 réponses

1 2 3
Avatar
isabelle
bonjour Frank,

il y a un exemple ici pour le traitement de plusieurs fichiers:
http://frederic.sigonneau.free.fr/code/Fichiers/TraiterTousFichiersDossier.txt

isabelle

clyver a écrit :
Bonjour le forum d'entraide,

J'ai un besoin de regroupement de plusieurs fichiers:

Sur un regroupements d'une dizaine de fichiers que je veux ciblé dans
des répertoires défini sachant que dans ces répertoires j'ai d'autre
fichiers que je ne veux pas requêter.

exemple mais fichiers se trouve dans :
S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls
S:SuivisFaD520x612 MW520x612 MW-CH111.xls
S:SuivisFaDMIPODMIPOD-CH286A.xls

PS : tous les fichiers on, une feuille nommée (FAD)
avec en titre colonne A => année, en B => mois, en C => n° de la
semaine


Le besoin serait de regrouper tout les fichiers par rapport à l'année
et le N° de semaine.
http://cjoint.com/?jpszQoi3OX

cordialament

Franck



Avatar
LSteph
Bonjour,
Un exemple qui balaie tous les fichiers du rep, mais il faut que tu
crée un répertoire dans lequel tu copies exclusivement ces fichiers
Et depuis excel mets toi sur ce répertoire pour executer cette macro
que tu mets dans un nouveau classeur (ou un enregistré ailleurs)

Sub regroup()
Dim i As Long, f As String
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open (f)
With Worksheets("FAD")
.Range("C5", .[A65536].End(xlUp).Address).Copy _
Destination:=ThisWorkbook.Sheets("Feuil1").[A65536].End(xlUp)(2)
Workbooks(f).Close False
End With
f = Dir
Loop
End Sub



On 15 sep, 18:27, clyver wrote:
Bonjour le forum d'entraide,

J'ai un besoin de regroupement de plusieurs fichiers:

Sur un regroupements d'une dizaine de fichiers que je veux ciblé dans
des répertoires défini sachant que dans ces répertoires j'ai d'autr e
fichiers que je ne veux pas requêter.

exemple mais fichiers se trouve dans :
S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls
S:SuivisFaD520x612 MW520x612 MW-CH111.xls
S:SuivisFaDMIPODMIPOD-CH286A.xls

PS : tous les fichiers on, une feuille nommée (FAD)
avec en titre colonne A => année, en B => mois, en C => n° de l a
semaine

Le besoin serait de regrouper tout les fichiers par rapport à l'année
et le N° de semaine.http://cjoint.com/?jpszQoi3OX

cordialament

Franck


Avatar
clyver
Bonjour et merci à vous pour les deux propositions,

Par contre j'ai un pb car sur cette demande mes répertoires sont
classé dans des répertoires avec d'autres fichiers que je ne veux pas
filtrer.

S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls
S:SuivisFaD520x612 MW520x612 MW-CH111.xls
S:SuivisFaDMIPODMIPOD-CH286A.xls

exemple dans le 1er liens il y a 6 classeurs excel je veux voir que le
"384x298 LTW CANTO.xls"

merci
Avatar
LSteph
Bonjour,

C'est pas pour rien que j'ai précisé
crée un répertoire dans lequel tu copies exclusivement ces fichiers


et a fortiiori puisqu'ils ne sont pas dans le même
les copier dans un rep devolu à cet effet et uniquement ceux là tu
iras plus vite
car sinon tu devras puisqu'ils ne sont pas dans le même
soit traiter les différents chemins répertoires
.. 384x298 LTW ..
...520x612 MW...
...
puis distinguer dans un Select Case les noms de fichiers

soit aller écrire en dur tous les noms des fichiers que tu dois
traiter consécutivement dans le code .

C'est bien plus lourd et plus long!

Sinon aulieu de passer par du code tu mets une feuille pour chacun de
ces claseurs liée à ce que tu veux dedans.

Cordialement.

--
lSteph


On 17 sep, 07:03, clyver wrote:
Bonjour et merci à vous pour les deux propositions,

Par contre j'ai un pb car sur cette demande mes répertoires sont
classé dans des répertoires avec d'autres fichiers que je ne veux pas
filtrer.

S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls
S:SuivisFaD520x612 MW520x612 MW-CH111.xls
S:SuivisFaDMIPODMIPOD-CH286A.xls

exemple dans le 1er liens il y a 6 classeurs excel je veux voir que le
"384x298 LTW CANTO.xls"

merci


Avatar
michdenis
Il peut aussi boucler sur une plage de cellule où
il aura insérer le chemin et l'adresse de chaque fichier
à traiter !
;-)


"LSteph" a écrit dans le message de groupe de discussion :

Bonjour,

C'est pas pour rien que j'ai précisé
crée un répertoire dans lequel tu copies exclusivement ces fichiers


et a fortiiori puisqu'ils ne sont pas dans le même
les copier dans un rep devolu à cet effet et uniquement ceux là tu
iras plus vite
car sinon tu devras puisqu'ils ne sont pas dans le même
soit traiter les différents chemins répertoires
.. 384x298 LTW ..
...520x612 MW...
...
puis distinguer dans un Select Case les noms de fichiers

soit aller écrire en dur tous les noms des fichiers que tu dois
traiter consécutivement dans le code .

C'est bien plus lourd et plus long!

Sinon aulieu de passer par du code tu mets une feuille pour chacun de
ces claseurs liée à ce que tu veux dedans.

Cordialement.

--
lSteph


On 17 sep, 07:03, clyver wrote:
Bonjour et merci à vous pour les deux propositions,

Par contre j'ai un pb car sur cette demande mes répertoires sont
classé dans des répertoires avec d'autres fichiers que je ne veux pas
filtrer.

S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls
S:SuivisFaD520x612 MW520x612 MW-CH111.xls
S:SuivisFaDMIPODMIPOD-CH286A.xls

exemple dans le 1er liens il y a 6 classeurs excel je veux voir que le
"384x298 LTW CANTO.xls"

merci


Avatar
LSteph
:-) ...oui!
certes ce sera un bien meilleur compromis!
mais avec mêmes réserves: ne pas se planter dans le libellé.
Utiliser quotes pour les 'nom de fichiers' qui ont des espaces


On 18 sep, 12:59, "michdenis" wrote:
Il peut aussi boucler sur une plage de cellule où
il aura insérer le chemin et l'adresse de chaque fichier
à traiter !
;-)

"LSteph" a écrit dans le message de groupe de disc ussion :

Bonjour,

C'est pas pour rien que j'ai précisé>crée un répertoire dans lequ el tu copies exclusivement ces fichiers

et a fortiiori puisqu'ils ne sont pas dans le même
les copier  dans un rep devolu à cet effet et uniquement ceux là tu
iras plus vite
car sinon tu devras  puisqu'ils ne sont pas dans le même
soit traiter les différents chemins  répertoires
.. 384x298 LTW ..
...520x612 MW...
...
puis distinguer dans un Select Case les noms de fichiers

soit aller écrire en dur tous les noms des fichiers que tu dois
traiter consécutivement dans le code .

C'est bien plus lourd et plus long!

Sinon aulieu de passer par du code tu mets une feuille pour chacun de
ces claseurs  liée à ce que tu veux dedans.

Cordialement.

--
lSteph

On 17 sep, 07:03, clyver wrote:



> Bonjour et merci à vous pour les deux propositions,

> Par contre j'ai un pb car sur cette demande mes répertoires sont
> classé dans des répertoires avec d'autres fichiers que je ne veux p as
> filtrer.

> S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls
> S:SuivisFaD520x612 MW520x612 MW-CH111.xls
> S:SuivisFaDMIPODMIPOD-CH286A.xls

> exemple dans le 1er liens il y a 6 classeurs excel je veux voir que le
> "384x298 LTW CANTO.xls"

> merci- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
michdenis
| certes ce sera un bien meilleur compromis!
| mais avec mêmes réserves: ne pas se planter dans le libellé.
| Utiliser quotes pour les 'nom de fichiers' qui ont des espaces

J'ai fait ce test :
Workbooks.Open "c:usersDMDocumentsLe Testle classeur2.xls"

et le fichier s'ouvre normalement. Où vois-tu l'obligation de mettre des "quotes" ?



On 18 sep, 12:59, "michdenis" wrote:
Il peut aussi boucler sur une plage de cellule où
il aura insérer le chemin et l'adresse de chaque fichier
à traiter !
;-)

"LSteph" a écrit dans le message de groupe de discussion :

Bonjour,

C'est pas pour rien que j'ai précisé>crée un répertoire dans lequel tu copies
exclusivement ces fichiers

et a fortiiori puisqu'ils ne sont pas dans le même
les copier dans un rep devolu à cet effet et uniquement ceux là tu
iras plus vite
car sinon tu devras puisqu'ils ne sont pas dans le même
soit traiter les différents chemins répertoires
.. 384x298 LTW ..
...520x612 MW...
...
puis distinguer dans un Select Case les noms de fichiers

soit aller écrire en dur tous les noms des fichiers que tu dois
traiter consécutivement dans le code .

C'est bien plus lourd et plus long!

Sinon aulieu de passer par du code tu mets une feuille pour chacun de
ces claseurs liée à ce que tu veux dedans.

Cordialement.

--
lSteph

On 17 sep, 07:03, clyver wrote:



> Bonjour et merci à vous pour les deux propositions,

> Par contre j'ai un pb car sur cette demande mes répertoires sont
> classé dans des répertoires avec d'autres fichiers que je ne veux pas
> filtrer.

> S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls
> S:SuivisFaD520x612 MW520x612 MW-CH111.xls
> S:SuivisFaDMIPODMIPOD-CH286A.xls

> exemple dans le 1er liens il y a 6 classeurs excel je veux voir que le
> "384x298 LTW CANTO.xls"

> merci- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
clyver
Bonjour,

si je veux cibler mes fichiers je les appels comment ?

Sub regroup()
Dim i As Long, f As String
f = Dir("S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls")
f = Dir("S:SuivisFaD520x612 MW520x612 MW-CH111.xls")
f = Dir("S:SuivisFaDMIPODMIPOD-CH286A.xls ")
Do While Len(f) > 0
Workbooks.Open (f)
With Worksheets("FAD")
.Range("C5", .[A65536].End(xlUp).Address).Copy _
Destination:=ThisWorkbook.Sheets("Feuil1").[A65536].End(xlUp)(2)
Workbooks(f).Close False
End With
f = Dir
Loop
End Sub


ou bien faut il utiliser
Workbooks.Open "S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls"

merci
Avatar
michdenis
Bonjour Clyver,

Cela pourrait ressembler à ceci :

Sub regroup()
Dim Elt As Variant
Dim Arr(1 To 3), Sh As Worksheet, Wk As Workbook

Arr(1) = "S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls"
Arr(2) = "S:SuivisFaD520x612 MW520x612 MW-CH111.xls"
Arr(3) = "S:SuivisFaDMIPODMIPOD-CH286A.xls "

Set Sh = ThisWorkbook.Worksheets("Feuil1")
Application.ScreenUpdating = False
For Each Elt In Arr
If Dir(Elt) <> "" Then
Set Wk = Workbooks.Open(Elt)
With Wk
With .Worksheets("FAD")
.Range("C5", .[A65536].End(xlUp).Address).Copy _
Destination:=Sh.Range("A65536").End(xlUp)(2)
End With
.Close False
End With
Else
MsgBox "Pas trouver ce fichier : " & vbCrLf & Elt
End If
Next
Application.ScreenUpdating = True
End Sub





"clyver" a écrit dans le message de groupe de discussion :

Bonjour,

si je veux cibler mes fichiers je les appels comment ?

Sub regroup()
Dim i As Long, f As String
f = Dir("S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls")
f = Dir("S:SuivisFaD520x612 MW520x612 MW-CH111.xls")
f = Dir("S:SuivisFaDMIPODMIPOD-CH286A.xls ")
Do While Len(f) > 0
Workbooks.Open (f)
With Worksheets("FAD")
.Range("C5", .[A65536].End(xlUp).Address).Copy _
Destination:=ThisWorkbook.Sheets("Feuil1").[A65536].End(xlUp)(2)
Workbooks(f).Close False
End With
f = Dir
Loop
End Sub


ou bien faut il utiliser
Workbooks.Open "S:SuivisFaD384x298 LTW384x298 LTW CANTO.xls"

merci
Avatar
clyver
Bonjour a tous

j'ai trois problème :

1/ Quand j'active la macro "regroup" certaine de mes classeur on des
liens peux ton lui dire de pas faire de mise à jour lors de la copie
qui se noterai dans la colonne K?

2/ Est-il possible de noter a coté de chaque ligne l'emplacement du
fichier trouvé? (comme mon exemple du 1er poste)

3/ J'aimerai également mettre à jour ma macro à l'ouverture du fichie r
(ouverture du classeur regroup actualiser les données)

pour info j'ai modifié la ligne [.Range("C5", .[A65536].End
(xlUp).Address).Copy _ par .Range("I5", .[A65536].End
(xlUp).Address).Copy _ ]

merci
1 2 3