lancer une macro sur plusieurs fichiers en meme temps

superniko

XLDnaute Nouveau
Bonjour tt le monde,
Voila, j'ai une macro contenu dans un "classeur1.xls" et j'execute ma macro sur un fichier "nomenclature1.xls"

J'aimerais savoir comment faire pour pouvoir executer la macro sur tous les fichiers nomenclatures present dans un dossier sans ouvrir chaque fichier nomenclature pour executer la macro?

Merci de votre aide.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : lancer une macro sur plusieurs fichiers en meme temps

Bonjour SuperNiko, le Forum

Si tu cherches avec "ADO" / "écriture Fichiers fermés" dans ce forum tu devrais trouver des possibilités.... Toutefois la Maîtrise des ActiveX Data Object n'est pas très très simple.

Sinon en ouvrant un à un tes fichiers avec VBA, on peut faire ceci...

Code:
Sub OpenFiles()
Dim F As Variant
    With Application.FileSearch
       .NewSearch
       .Filename = "*.XLS"
       .LookIn = "I:\MC_Prod\Corporate\Companies\Main\"
       .Execute
       .SearchSubFolders = False
       
       On Error Resume Next
       For Each F In .FoundFiles
            Workbooks.Open F
            DateFooterPrint
       Next F
    End With
End Sub
Sub DateFooterPrint()
Dim NewDate As String
 With Sheets("Sheet1").PageSetup
   .RightFooter = "&""Times New Roman,Bold Italic""" & Date & ""
 End With
Sheets("Sheet1").PrintOut
ActiveWorkbook.Close True
End Sub

Si ça peut t'aider.... Ce code ouvre un à un tous les fichiers XLS d'un répertoire spécifique, met la date en pied de page, les imprime, les sauve et les ferme...

Bonne fin de journée
@+Thierry
 

superniko

XLDnaute Nouveau
Re : lancer une macro sur plusieurs fichiers en meme temps

desole mais je debute,
je comprend po trop le vba.
Serait-ce possible d'avoir un msgbox qui apparait en allant chercher le dossier voulu et ensuite d'executer la macro en enregistrant automatiquement chaque fichier et de les fermer?

Merci de votre comprehension car je connais vraiment po beaucoup le vba.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : lancer une macro sur plusieurs fichiers en meme temps

Bonsoir SuperNiko, le Forum

Voici le code modifié pour qu'il corresponde à ta dernière demande....


Code:
Sub OpenFiles()
Dim F As Variant
Dim Question As Byte
    With Application.FileSearch
       .NewSearch
       .Filename = "*.XLS"
        [COLOR=seagreen]'Ici Chemin à adapter...
[/COLOR]       .LookIn = "[B][COLOR=blue]C:\Documents and Settings\Thierry\My Documents\test xld[/COLOR][/B]"
       .Execute
       .SearchSubFolders = False
       
       On Error Resume Next
       For Each F In .FoundFiles
       Question = MsgBox("Voulez-vous agir sur le fichier " & Dir(F), vbQuestion + vbYesNo)
        If Question = vbYes Then
             Workbooks.Open F
             DateFooterPrint
        End If
       Next F
    End With
End Sub
 
 
Sub DateFooterPrint()
[COLOR=seagreen]'Ici ta macro....[/COLOR]
[COLOR=#2e8b57]'blah blah blah....[/COLOR]
[COLOR=#2e8b57][/COLOR] 
[COLOR=seagreen]'Ici ça sauve et ferme le classeur qui a été juste ouvert...
[/COLOR]ActiveWorkbook.Close True
End Sub

Attention, le MsgBox c'est contraignant à chaque fichier... Mais bon le client est Roi ;)

Bonne Soirée
@+Thierry
 

lapix

XLDnaute Occasionnel
Re : lancer une macro sur plusieurs fichiers en meme temps

Bonsoir a tous

Je me demandais si en fait de msgbox ce ne serait pas plutot un Dlg Ouvrir qui serait demandé. Tu peux nous confirmer ca ?

du style tant que je dis pas stop fais moi choisir les fichiers a traiter
 

superniko

XLDnaute Nouveau
Re : lancer une macro sur plusieurs fichiers en meme temps

En fait j'ai du mal formuler ma demande:

En fait l'objectif de la macro serait d'ouvrir un dossier que l'on choisira puis d'effectuer une autre macro (deja existante qui fonctionne bien) puis d'enregistrer la feuille puis de quitter.
ainsi de suite pour toutes les feuilles excels present dans le dossier choisi

j'espere que c plus claire.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : lancer une macro sur plusieurs fichiers en meme temps

Bonsoir

Huum, gros problème de vocabulaire.

superniko Premier Post à dit:
J'aimerais savoir comment faire pour pouvoir executer la macro sur tous les fichiers nomenclatures present dans un dossier sans ouvrir chaque fichier nomenclature pour executer la macro?

superniko Dernier Post à dit:
En fait l'objectif de la macro serait d'ouvrir un dossier que l'on choisira puis d'effectuer une autre macro (deja existante qui fonctionne bien) puis d'enregistrer la feuille puis de quitter.
ainsi de suite pour toutes les feuilles excels present dans le dossier choisi


Qu'est-ce un "Dossier" pour toi ? un Répertoire ou un Fichier ? :eek:

Qu'est-ce un "Fichier" pour toi ? un Fichier ou une Feuille ? :eek:


Car là on va avoir du mal à avancer sinon :rolleyes:

Bonne Nuit

@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : lancer une macro sur plusieurs fichiers en meme temps

Bonsoir Superniko, Lapix, le Forum

Bon alors tant mieux pour toi dans ce cas j'en suis heureux.

Juste un petit bémol, pas forcément hémanant de toi, mais n'oublier pas qu'XLD est un Forum de Partage de Connaissance... Les Soluces par Hotmail et autre Messenger peuvent faire une "belle jambe" à celui/celle qui se posera un jour la même question que toi...

Bonne Soirée
@+Thierry
 

Tech

XLDnaute Junior
Re : lancer une macro sur plusieurs fichiers en meme temps

Bonjour forum.

je remonte ce vieux fil car aujourd'hui je me trouve dans la même situation que Superniko.
ça fait 7 ans et les solutions ont changé, il n'est plus possible d'utiliser FileSearch et donc je ne peux pas essayer la solution donnée plus haut par _Tierry.

Je décris ma situation : j'ai un fichier xlsm qui contient une serie de macro qui ne travaillent que sur des fichiers xlsx qui se trouvent dans un autre dossier que j'appelle source.

Pour appliquer ma macro à tous les fichiers de mon dossier source, j'ouvre le fichier xlsm, je lance la macro qui ouvre une boite de dialogue GetOpenFilename déjà positionnée sur le dossier source, puis j'ouvre un fichier xlsx, la macro s'éxecute, le fichier est sauvegardé et fermé. ensuite, je dois relancer ma macro d'ouverture de boite de dialogue, choisir un autre fichier et ainsi de suite jusqu'au dernier. mon dossier source peut contenir 80 fichiers xlsx, ca me prend donc un certain temps pour appliquer ma macro à tout ce monde la... J'aurais bien voulu automatiser tout ca !

En ce qui concerne les solutions possibles, j'ai vu que ClasseFileSearch remplace FileSearch mais mes maigres compétences en vba ne me permettent pas d'adapter a ce que je voudrais.

Si quelqu'un du forum à une p'tite solution pour mon gros problème :D :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 613
Messages
2 090 232
Membres
104 455
dernier inscrit
alix