Macro qui exécute une autre macro d'autres classeurs.

mathieums

XLDnaute Nouveau
Salut à tous,

Je souhaiterais faire une macro d'un fichier situé sur le bureau qui exécuterait un à un une macro des fichiers d'un répertoire d'un autre disque dur.

Exemple :
J'ai
- mon fichier sur mon bureau
- 10 fichiers sur mon disque réseau F:
- une macro 'save' dans les 10 fichiers ( c'est la même, elle lance un traitement et sauvegarde).

J'appuie sur le bouton du fichier sur mon bureau, il ouvre le premier fichier du répertoire du disque F , lance la macro, a la fin du traitement elle ferme le fichier et passe au suivant etc...

Merci par avance pour vos retours

A+
Mathieu
 

tototiti2008

XLDnaute Barbatruc
Re : Macro qui exécute une autre macro d'autres classeurs.

Bonsoir mathieums,

Peut-être un truc du genre là, à répéter pour le nombre de fichiers voulu

Code:
Sub test()
    Workbooks.Open "F:\Classeur2.xlsm"
    Application.Run "Classeur2.xlsm!save"
    Workbooks("Classeur2.xlsm").Close True
End Sub
 

mathieums

XLDnaute Nouveau
Re : Macro qui exécute une autre macro d'autres classeurs.

Merci pour la réponse rapide.

Effectivement ça marche, il ne me reste plus qu'a l’enchaîner pour tous les fichiers :confused::confused:

Sachant que j'ai oublié un point important, le nombre du fichier dans le répertoire varie.

A+

Mathieu
 

tototiti2008

XLDnaute Barbatruc
Re : Macro qui exécute une autre macro d'autres classeurs.

Bonsoir Mathieu,

Sachant que j'ai oublié un point important

Eh oui, pas négligeable
Donc que sait-on sur ces fameux fichiers ?
Il sont tous dans un même dossier ?
Si oui, il peut en avoir d'autre dans le même dossier qui ne devront pas être ouverts ?
Quelques précisions sur ce qu'on sait de ces fameux fichiers à ouvrir nous aiderait à automatiser ça...
 

mathieums

XLDnaute Nouveau
Re : Macro qui exécute une autre macro d'autres classeurs.

Re,

Oui dsl de ce petit oublie.

Concernant les fichiers du répertoire, ils sont tous à traiter mais le nombre du fichier dans le répertoire varient.

Exemple : 10 aujourd'hui et 15 demain

J'ai quelques pistes avec les infos qu'on m'a donnée mais je n'ai pas finit la macro :)

Voici la macro actuel, je n'ai pas encore testé :confused::confused:

Dim wb As Workbook, wb2 As Workbook
Dim sPath As String, sFilename As String
Dim NbRows As Integer, rg As Range

Set wb = ThisWorkbook

Application.ScreenUpdating = False

sPath = "F:\FICHIER\"
sFilename = Dir(sPath & "*.xlsm*")

Do While Len(sFilename) > 0
Set wb2 = Workbooks.Open(sPath & sFilename)
Application.Run "sFilename!save"
ActiveWorkbook.Close
 

tototiti2008

XLDnaute Barbatruc
Re : Macro qui exécute une autre macro d'autres classeurs.

Bonjour Mathieu,

Voici la macro actuel, je n'ai pas encore testé :confused::confused:

Il manque juste un bout

Code:
Dim wb As Workbook, wb2 As Workbook
Dim sPath As String, sFilename As String

Set wb = ThisWorkbook

Application.ScreenUpdating = False

sPath = "F:\FICHIER\"     
sFilename = Dir(sPath & "*.xlsm*")

Do While Len(sFilename) > 0
    Set wb2 = Workbooks.Open(sPath & sFilename)
    Application.Run "'" & sFilename & "'!save"
    ActiveWorkbook.Close True
sFilename = dir
Loop
set wb = nothing
set wb2 = nothing
Application.ScreenUpdating = true
 

Discussions similaires

Statistiques des forums

Discussions
312 848
Messages
2 092 786
Membres
105 534
dernier inscrit
EmilieG60