Appel de procédures VBA dans un autre classeur

Le
lylo
Bonjour,

J'ai deux classeurs Excel, chacun contient une srie de procdures
VBA.

Je voudrais, partir du classeur 2 pouvoir lancer la macro contenue
dans le classeur 1, et lancer l'instruction suivante de la macro du
classeur 2.

J'ai tap le code suivant dans la macro du classeur 2 :

Workbooks.Open FileName:="Classeur1.xls"
Application.Run " Classeur1.xls!Traiter.Principale"

La macro Principale du classeur 1 s'execute bien, mais le
problme, c'est que l'instruction suivante de la macro du classeur
2 ne s'execute pas.

Comment redonner la main la macro du classeur 2 ?

Merci
Vos réponses
Trier par : date / pertinence
michdenis
Le #2971381
Bonjour Lylo,

Si tu utilises des variables "Object" tu peux facilement garder le contrôle
sur l'exécution du code .

Voici comment ouvrir un classeur et exécuter une macro appelée "MaMacro" de ce classeur qui est dans le module10 de ce dernier

'-------------------------
Sub MaMacro()

Dim Wk As Workbook, LaMacro As String
Set Wk = Workbooks.Open("c:Atravail000.xls")

With Wk
LaMacro = .Name & "!Module10.MaMacro"
.Application.Run LaMacro
'Ferme le classeur qui a été ouvert
'et sauvegarde les données
.Close True
End With
MsgBox "Bonjour"

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


Salutations!



"lylo" Bonjour,

J'ai deux classeurs Excel, chacun contient une série de procédures
VBA.

Je voudrais, à partir du classeur 2 pouvoir lancer la macro contenue
dans le classeur 1, et lancer l'instruction suivante de la macro du
classeur 2.

J'ai tapé le code suivant dans la macro du classeur 2 :

Workbooks.Open FileName:="Classeur1.xls"
Application.Run " Classeur1.xls!Traiter.Principale"

La macro « Principale » du classeur 1 s'execute bien, mais le
problème, c'est que l'instruction suivante de la macro du classeur
2 ne s'execute pas.

Comment « redonner la main » à la macro du classeur 2 ?

Merci
Publicité
Poster une réponse
Anonyme