Executer une macro d'un autre classeur

Le
Paulo
Bonjour,
quand j'ai ouvert le classeur A, comment faire aprs clic
sur un boutton, pour ouvrir un classeur B en invisible et
executer une sub qui se trouve dans le classeur B?
Merci
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Denis Michon
Le #287204
Bonjour Paulo,

Voici un exemple ce code pour appeler une macro nommé "Test1" selon que ton classeur est ouvert ou fermé :

Classeur Fermé:
Application.Run "'C:Mes documentsAnswer.xls'!test1"


'Procédure dans un module standard
Classeur Ouvert:
Application.Run "Answer.xls!test1"


Pour ouvrir un classeur dans une nouvelle instance, invisible aux yeux de l'usager :


Lors de tes tests, met la propriété Visible à True durant tes test. Lorsque tout fonctionne bien, tu peux alors passer
la propriété "Visible" à false, sinon, tu risques d'avoir plusieurs instances d'ouvert en mémoire en cas de plantage
...et quelques difficultés si tu n'es pas trop familier avec cela!

'-------------------------
Sub OuvrirEtExécuterMacro()

Dim Xl As Object, Wk As Workbook

Set Xl = CreateObject("Excel.Application")
Xl.Visible = False 'True
Set Wk = Xl.Workbooks.Open("C:ExcelClasseur1.xls")
Xl.Run Wk.Name & "!MaMacro"
'Ferme le classeur en enregistrant les modification.
'utilise False, si tu n'as pas besoin de sauvegarder
Wk.Close True
Xl.Quit
Set Xl = Nothing: Set Wk = Nothing

End Sub
'-------------------------


Salutations!


"Paulo" Bonjour,
quand j'ai ouvert le classeur A, comment faire après clic
sur un boutton, pour ouvrir un classeur B en invisible et
executer une sub qui se trouve dans le classeur B?
Merci
Publicité
Poster une réponse
Anonyme