[Résolu] macro ThisWorkbook BeforeClose ne s'active pas !

vivbout

XLDnaute Junior
Bonsoir,

je viens vers vous car je suis bloqué sur un sujet et je ne trouve pas la solution. voilà mon problème: j'ai plusieurs fichiers qui contiennent une macro qui s'active à la fermeture du fichier. toutes ces macros fonctionnent, pas de soucis.
Mais j'ai un autre fichier sur lequel je voudrais pouvoir ouvrir tous les fichiers un par un et les refermer pour que toutes les macros beforeclose s'activent.

voilà mon code

Code:
Sub Rafraîchir_les_fichiers_sources()


    Dim rep$, nom1$, ClasseurRegional$, DebutNomFichier
    nom1 = ActiveWorkbook.Name
    rep = "V:\Salia\Emballage\Commandes\Commandes emballages\"
    ClasseurRegional = Dir(rep & "*.xls")
    While Len(ClasseurRegional) > 0
        Workbooks.Open rep & ClasseurRegional
        Workbooks(ClasseurRegional).Close ([Savechanges])
        ClasseurRegional = Dir    'passer au suivant
    Wend

End Sub

dans l'ensemble il fonctionne correctement, il ouvre et referme les fichiers, mais les macro ne s'activent pas:confused:

j'ai vu une solution qui pourrait marcher

Code:
Application.Run "'Nom du Classeur.xls'!Module1.NomMacro"

mais je ne sais pas comment intégrer "ClasseurRegional" à la place de "'Nom du Classeur.xls'"

merci d'avance pour votre aide

Vivien
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : macro ThisWorkbook BeforeClose ne s'active pas !

re

tu m'excuseras mais personne ne va travailler ainsi !
pas de téléchargement à l'aveugle !

ensuite tu ne réponds à mon dernier post, qui est:
petite précision, la macro ET la feuille "récap" se situent bien sur les fichiers appelés ?
car le code est censé exécuter une procédure qui est dans les fichiers appelés ainsi que la feuille "récap"
si la feuille "récap" est dans le classeur appelant alors il faut pratiquer autrement !
 

vivbout

XLDnaute Junior
Re : macro ThisWorkbook BeforeClose ne s'active pas !

je résume l'objectif de mes fichiers.

il y a une dizaine de fichiers "sources", chacun comporte une macro "copie-macro" qui permet de faire une récap de tous les onglets sur le dernier onglet "récap" du fichier.

il y a ensuite un autre fichier qui va chercher à l'aide d'une macro tous les contenus des différents onglets récap des premiers fichiers.

ce que je cherche à faire dans ma demande est de lancer à distance toutes les macros "copie_macro" des fichiers sources. c'est en quelque sorte une mise à jour de ces fichiers avant d'aller récupérer le contenu de ces onglets "récap".

j'espère être assez clair.

donc oui la macro et l'onglet récap sont systématiquement sur chaque fichier appelé.

merci pour le temps que tu accordes à mon problème.
 

Roland_M

XLDnaute Barbatruc
Re : macro ThisWorkbook BeforeClose ne s'active pas !

re

voir avec la même routine corrigée !
Code:
Sub Rafraîchir_les_fichiers_sources()
    Dim Rep$, ClasseurRegional$, R$
    Rep = "V:\Salia\Emballage\Commandes\Commandes emballages\"
    ClasseurRegional = Dir(Rep & "*.xls")
    While Len(ClasseurRegional) > 0
       If ClasseurRegional <> ThisWorkbook.Name Then
          R$ = Rep & ClasseurRegional
          Workbooks.open R$
          Workbooks(ClasseurRegional).Activate 'ceci facultatif car normalement il est actif mais...
          Application.Run "'" & ClasseurRegional & "'!copie_macro" 'exécute la macro
          'Application.Run "'" & R$ & "'!copie_macro" 'exécute la macro
          Workbooks(ClasseurRegional).Close True 'True pour Save et False pour fermer sans save
       End If
       ClasseurRegional = Dir 'passer au suivant
    Wend
End Sub
 
Dernière édition:

vivbout

XLDnaute Junior
Re : macro ThisWorkbook BeforeClose ne s'active pas !

testé à l'instant, la macro du premier fichier est bien lancée, mais ça plante au deuxième :

erreur 1004, impossible d'exécuter la macro... pourtant elle est bien dans le fichier au même endroit que dans le premier fichier

au débogage, la ligne "Application.Run "'" & ClasseurRegional & "'!copie_macro" 'exécute la macro" est en jaune.

monde cruel !!
 

Roland_M

XLDnaute Barbatruc
Re : macro ThisWorkbook BeforeClose ne s'active pas !

re

voir essai avec celle-ci:

Code:
Sub Rafraîchir_les_fichiers_sources()
    Dim Rep$, ClasseurRegional$, R$
    Rep = "V:\Salia\Emballage\Commandes\Commandes emballages\"
    ClasseurRegional = Dir(Rep & "*.xls")
    While Len(ClasseurRegional) > 0
       If ClasseurRegional <> ThisWorkbook.Name Then
          R$ = Rep & ClasseurRegional
          Workbooks.Open R$
          Workbooks(ClasseurRegional).Activate
          'Application.Run "'" & ClasseurRegional & "'!copie_macro"
          Application.Run "'" & R$ & "'!copie_macro"
          Workbooks(ClasseurRegional).Close True 'True pour Save et False pour fermer sans save
       End If
       ThisWorkbook.Activate
       ClasseurRegional = Dir 'fichier suivant
    Wend
End Sub


j'ai fais tourner avec plusieurs fichiers et ça n'a pas buggé !
après ça je crois que l'on aura fait le tour !?
il faudra voir dans les routines des fameux classeurs en question !?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 378
Messages
2 087 760
Membres
103 661
dernier inscrit
fcleves