OVH Cloud OVH Cloud

macro sur plusieurs fichiers

2 réponses
Avatar
boblebob
salut,=20
un dossier contient une quarantaine de fichiers, je dois=20
appliquer 7 macros =E0 tous les fichiers contenu dans le=20
dossier j'ai fait =E7a :=20

Sub test()

Dim F
'ouvre tous les fichiers du dosier Contr=F4le Budg=E9taire, l=E0=20
ca marche
With Application.FileSearch
.NewSearch
.LookIn =3D "\\Dossier1\Documents\...\Contr=F4le Budg=E9taire"
.Execute
On Error Resume Next
For Each F In .FoundFiles
Workbooks.Open F
Next F
End With


'maintenant je voudrais appliquer ces 7 proc=E9dures =E0=20
chaque fichiers pr=E9c=E9demment ouverts et la ca marche plus,=20
il ne boucle pas sur les fichiers deplus il faudrait=20
sauvegarder et fermer chaque fichier apr=E8s traitement

For Each F In Application.FileSearch.FoundFiles

Call feuille_entete
Call recherchev_calculs
Call valeurs
Call supprimer_feuille
Call suppr_lignes
Call totaux_colonnes
Call mef
Next F

End Sub


avez-vous une id=E9e pour boucler sur les fichiers ?
merci=20
a+
bob

2 réponses

Avatar
Vincent.
Salut bob,
A première vue, je dirais que tes 7 macros devraient faire
appel à un argument qui serait le nom du fichier (ou
l'objet fichier) à traiter.
Alors, Feuil_Entete deviendrait Feuil_Entete(Fichier as
String ou Workbook) et pour appeler la procédure : Call
Feuil_Entete(F). Par exemple.

A moins que chaque macro traite le fichier activé.
Dans ce cas, il suffit d'ouvrir le fichier avant de lancer
les macros :
workbooks(F).open 'juste après for each F
et
workbooks(F).close 'juste avant le next F

Si je suis à côté de la plaque, n'hésite pas à repréciser
ta demande !
A+

-----Message d'origine-----
salut,
un dossier contient une quarantaine de fichiers, je dois
appliquer 7 macros à tous les fichiers contenu dans le
dossier j'ai fait ça :

Sub test()

Dim F
'ouvre tous les fichiers du dosier Contrôle Budgétaire,


ca marche
With Application.FileSearch
.NewSearch
.LookIn = "Dossier1Documents...Contrôle Budgétaire"
.Execute
On Error Resume Next
For Each F In .FoundFiles
Workbooks.Open F
Next F
End With


'maintenant je voudrais appliquer ces 7 procédures à
chaque fichiers précédemment ouverts et la ca marche
plus,

il ne boucle pas sur les fichiers deplus il faudrait
sauvegarder et fermer chaque fichier après traitement

For Each F In Application.FileSearch.FoundFiles

Call feuille_entete
Call recherchev_calculs
Call valeurs
Call supprimer_feuille
Call suppr_lignes
Call totaux_colonnes
Call mef
Next F

End Sub


avez-vous une idée pour boucler sur les fichiers ?
merci
a+
bob
.



Avatar
salut et merci ,
en fait j'ai fait comme ça : Sub mettre_lignes()
'ce module a pour but de mettre en ligne les données puis
de les mettre en forme, plus des calculs

Dim F, W
With Application.FileSearch
.NewSearch
LookIn = "Dossier1Documents...Contrôle Budgétaire"
.Execute
On Error Resume Next
For Each F In .FoundFiles
Workbooks.Open F
Call feuille_entete
Call recherchev_calculs
Call valeurs
Call supprimer_feuille
Call suppr_lignes
Call totaux_colonnes
Call mef

Next F
End With

For Each W In Workbooks
If W.Name <> ThisWorkbook.Name Then
W.Close savechanges:=True
End If
Next W

End Sub

-----Message d'origine-----
Salut bob,
A première vue, je dirais que tes 7 macros devraient
faire

appel à un argument qui serait le nom du fichier (ou
l'objet fichier) à traiter.
Alors, Feuil_Entete deviendrait Feuil_Entete(Fichier as
String ou Workbook) et pour appeler la procédure : Call
Feuil_Entete(F). Par exemple.

A moins que chaque macro traite le fichier activé.
Dans ce cas, il suffit d'ouvrir le fichier avant de
lancer

les macros :
workbooks(F).open 'juste après for each F
et
workbooks(F).close 'juste avant le next F

Si je suis à côté de la plaque, n'hésite pas à repréciser
ta demande !
A+

-----Message d'origine-----
salut,
un dossier contient une quarantaine de fichiers, je dois
appliquer 7 macros à tous les fichiers contenu dans le
dossier j'ai fait ça :

Sub test()

Dim F
'ouvre tous les fichiers du dosier Contrôle Budgétaire,


ca marche
With Application.FileSearch
.NewSearch
.LookIn = "Dossier1Documents...Contrôle
Budgétaire"


.Execute
On Error Resume Next
For Each F In .FoundFiles
Workbooks.Open F
Next F
End With


'maintenant je voudrais appliquer ces 7 procédures à
chaque fichiers précédemment ouverts et la ca marche
plus,

il ne boucle pas sur les fichiers deplus il faudrait
sauvegarder et fermer chaque fichier après traitement

For Each F In Application.FileSearch.FoundFiles

Call feuille_entete
Call recherchev_calculs
Call valeurs
Call supprimer_feuille
Call suppr_lignes
Call totaux_colonnes
Call mef
Next F

End Sub


avez-vous une idée pour boucler sur les fichiers ?
merci
a+
bob
.

.