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

Comment exécuter une macro créée sur un autre classeur ?

5 réponses
Avatar
Philou
Bonjour,
j'ai 2 classeurs (tous les 2 ouverts),
Je cherche à éxécuter à l'aide d'une procédure VBA dans le classeur N°1, une
macro VBA contenue dans un module du classeur N°2.

Exemple :
Dans le ThisWorkbook du Classeur N°1

Private Sub Workbook_Open()
MaProcedure
End Sub

Dans le module Module1 du Classeur N°2

Private Sub MaProcedure()
Beep
End Sub

Si quelqu'un a une idée, merci d'avance.

5 réponses

Avatar
Philippe.R
Bonjour Philippe,
L'enregistreur de macros me souffle cette syntaxe :

Application.Run "Ton_classeur.XLS!la_bonne_macro"

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Philou" a écrit dans le message de news:
uKt$a%
Bonjour,
j'ai 2 classeurs (tous les 2 ouverts),
Je cherche à éxécuter à l'aide d'une procédure VBA dans le classeur N°1, une
macro VBA contenue dans un module du classeur N°2.

Exemple :
Dans le ThisWorkbook du Classeur N°1

Private Sub Workbook_Open()
MaProcedure
End Sub

Dans le module Module1 du Classeur N°2

Private Sub MaProcedure()
Beep
End Sub

Si quelqu'un a une idée, merci d'avance.




Avatar
Philou
Merci, ça fonctionne bien avec les macro public, mais comment faire si la
procédure est définie comme Private ?
@+

"Philippe.R" a écrit dans le message de news:

Bonjour Philippe,
L'enregistreur de macros me souffle cette syntaxe :

Application.Run "Ton_classeur.XLS!la_bonne_macro"

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Philou" a écrit dans le message de news:
uKt$a%
Bonjour,
j'ai 2 classeurs (tous les 2 ouverts),
Je cherche à éxécuter à l'aide d'une procédure VBA dans le classeur N°1,
une


macro VBA contenue dans un module du classeur N°2.

Exemple :
Dans le ThisWorkbook du Classeur N°1

Private Sub Workbook_Open()
MaProcedure
End Sub

Dans le module Module1 du Classeur N°2

Private Sub MaProcedure()
Beep
End Sub

Si quelqu'un a une idée, merci d'avance.







Avatar
Philippe.R
Re,
Il faut alors la passer en public ; la déclaration Private ayant justement pour objectif d'en réserver
l'appel au module où elle est écrite.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Philou" a écrit dans le message de news:

Merci, ça fonctionne bien avec les macro public, mais comment faire si la
procédure est définie comme Private ?
@+

"Philippe.R" a écrit dans le message de news:

Bonjour Philippe,
L'enregistreur de macros me souffle cette syntaxe :

Application.Run "Ton_classeur.XLS!la_bonne_macro"

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Philou" a écrit dans le message de news:
uKt$a%
Bonjour,
j'ai 2 classeurs (tous les 2 ouverts),
Je cherche à éxécuter à l'aide d'une procédure VBA dans le classeur N°1,
une


macro VBA contenue dans un module du classeur N°2.

Exemple :
Dans le ThisWorkbook du Classeur N°1

Private Sub Workbook_Open()
MaProcedure
End Sub

Dans le module Module1 du Classeur N°2

Private Sub MaProcedure()
Beep
End Sub

Si quelqu'un a une idée, merci d'avance.











Avatar
Philou
Ok, merci pour tout !

"Philippe.R" a écrit dans le message de news:
#G$
Re,
Il faut alors la passer en public ; la déclaration Private ayant justement
pour objectif d'en réserver

l'appel au module où elle est écrite.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Philou" a écrit dans le message de news:

Merci, ça fonctionne bien avec les macro public, mais comment faire si
la


procédure est définie comme Private ?
@+

"Philippe.R" a écrit dans le message de news:

Bonjour Philippe,
L'enregistreur de macros me souffle cette syntaxe :

Application.Run "Ton_classeur.XLS!la_bonne_macro"

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Philou" a écrit dans le message de news:
uKt$a%
Bonjour,
j'ai 2 classeurs (tous les 2 ouverts),
Je cherche à éxécuter à l'aide d'une procédure VBA dans le classeur
N°1,




une
macro VBA contenue dans un module du classeur N°2.

Exemple :
Dans le ThisWorkbook du Classeur N°1

Private Sub Workbook_Open()
MaProcedure
End Sub

Dans le module Module1 du Classeur N°2

Private Sub MaProcedure()
Beep
End Sub

Si quelqu'un a une idée, merci d'avance.














Avatar
Alain CROS
Bonjour.

La fonctionnement est correct avec une Private Sub

Alain CROS

"Philippe.R" a écrit dans le message de news: #G$
Re,
Il faut alors la passer en public ; la déclaration Private ayant justement pour objectif d'en réserver
l'appel au module où elle est écrite.
--
Amicales Salutations
XL 97 / 2000 / 2002