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

Exécuter macro dans classeurs fermés

  • Initiateur de la discussion Initiateur de la discussion BAT
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BAT

XLDnaute Occasionnel
Bonjour à tous,

Après une recherche non concluante dans les posts du forum, je vous soumets mon problème que je cherche à résoudre.

Je souhaite par un clic de souris, que tous les classeurs (fermés) d'un répertoire de mon disc, mettent à jours les TCD qu'ils contiennent.

J'utilise actuellement une macro qui permet la mise à jour des TCD d'un classeur :
Code:
Sub MAJTCD()
   Sheets("AT").Select
    Application.ScreenUpdating = False  'ne pas voir ce qui se passe à l'écran, diminue besoin mémoire
 For Each s In ActiveWorkbook.Sheets
  For Each p In s.PivotTables
    p.RefreshTable
  Next p
 Next s
     Sheets("MENU").Select
    Range("C4:E4").Select
    Application.ScreenUpdating = True  'ne pas voir ce qui se passe à l'écran, diminue besoin mémoire
End Sub

Pensez vousqu'il est possible de l'exploiter pour arriver à mes fins ?

Merci à tous pour votre coup de pouce
 
Re : Exécuter macro dans classeurs fermés

Bonjour BAT,

As-tu une raison de vouloir les mettre à jour quand ils sont fermés?

ça ne suffit pas qu'ils se mettent à jour à l'ouverture?

En tout cas, bien que la raison m'échappe, il y a une solution, voici un code tapper directement sans tester à adapter à ta situation.

L'idée étant d'ouvrir les fichiers, les travailler et les refermer sans que ça se voit.

application.screenupdating=false

Rep=activework.path & "/"
S = Dir(rep)
If S <> "" Then
Do
If S Like "*.xls" Then
set w=createobject(rep & S)
For Each sh In w.Sheets
For Each p In sh.PivotTables
p.RefreshTable
Next p
Next sh
w.close savechanges:=true
End If
S = Dir
Loop While S <> ""
End If

application.screenupdating=true

En espérant que ça aidera

A+

smotty
 
Dernière édition:
Re : Exécuter macro dans classeurs fermés

Bonjour BAT, Smotty

Voici un exemple avec l'aide d'excel (cela rejoint le code de smotty).

Décompresse les fichiers sur ton C:\ (attention tu doit avoir dans C:\TCD le fichier MAJTCD et en sous dossier c:\TCD\TCD les 2 fichiers TCD1 et TCD2).
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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