Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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é

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é

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…