Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Appel de procédures VBA dans un autre classeur

1 réponse
Avatar
lylo
Bonjour,

J'ai deux classeurs Excel, chacun contient une s=E9rie de proc=E9dures
VBA.

Je voudrais, =E0 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=E9 le code suivant dans la macro du classeur 2 :

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

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

Comment =AB redonner la main =BB =E0 la macro du classeur 2 ?

Merci

1 réponse

Avatar
michdenis
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:Atravail 000.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" a écrit dans le message de news:
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