Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour Il n'y a pas d'intérêt de déclarer une macro publique dans l'objet ThisWorkbook Les macros appartiennent au classeur,certes, mais dans sa globalité, soit tous les objets qui en dépendent (Microsoft Excel objets, Feuilles, Thisworkbook, Modules et Modules de classe) Pour résoudre ton souci, il faut déclarer ta macro publique dans un module.
Cordialement Pascal
"myname" a écrit dans le message de news: 440823ca$
Bonjour,
je crée une "public sub test" dans la partie "ThisWorkbook" d'un classeur.
Je voudrais l'appeler depuis un autre classseur.
Après ouverture dans une variable wb, je fais :
wb.test
Mais ça me répond "cet objet ne gère pas cette méthode".
Par contre, si je la mets dans une feuille et écris :
wb.sheets(1).test
Ca marche !
Comment puis-je résoudre mon problème d'appel vers ThisWorkbook ?
Bonjour
Il n'y a pas d'intérêt de déclarer une macro publique dans l'objet
ThisWorkbook
Les macros appartiennent au classeur,certes, mais dans sa globalité, soit
tous les objets qui en dépendent (Microsoft Excel objets, Feuilles,
Thisworkbook, Modules et Modules de classe)
Pour résoudre ton souci, il faut déclarer ta macro publique dans un module.
Cordialement
Pascal
"myname" <nospam@ihatespam.com> a écrit dans le message de news:
440823ca$1@news.sncf.fr...
Bonjour,
je crée une "public sub test" dans la partie "ThisWorkbook" d'un classeur.
Je voudrais l'appeler depuis un autre classseur.
Après ouverture dans une variable wb, je fais :
wb.test
Mais ça me répond "cet objet ne gère pas cette méthode".
Par contre, si je la mets dans une feuille et écris :
wb.sheets(1).test
Ca marche !
Comment puis-je résoudre mon problème d'appel vers ThisWorkbook ?
Bonjour Il n'y a pas d'intérêt de déclarer une macro publique dans l'objet ThisWorkbook Les macros appartiennent au classeur,certes, mais dans sa globalité, soit tous les objets qui en dépendent (Microsoft Excel objets, Feuilles, Thisworkbook, Modules et Modules de classe) Pour résoudre ton souci, il faut déclarer ta macro publique dans un module.
Cordialement Pascal
"myname" a écrit dans le message de news: 440823ca$
Bonjour,
je crée une "public sub test" dans la partie "ThisWorkbook" d'un classeur.
Je voudrais l'appeler depuis un autre classseur.
Après ouverture dans une variable wb, je fais :
wb.test
Mais ça me répond "cet objet ne gère pas cette méthode".
Par contre, si je la mets dans une feuille et écris :
wb.sheets(1).test
Ca marche !
Comment puis-je résoudre mon problème d'appel vers ThisWorkbook ?
michdenis
Bonjour MyName,
De façon générale pour appeler une macro dans un autre classeur ouvert,
Il y a cette syntaxe seulement si ta macro est dans un module standard. Que ta macro soit déclarée "Private" ou "Public" ne fait pas de différence si tu utilise la commande : Application.Run... Application.Run "Classeur1.xls!NomDeLaMacro"
Si ta macro est situé dans un module de classe : ThisWorkboo, Toutes les feuilles module ou si tu as ajouté un module de classe ... Tu dois spécifier dans quel module de classe se situe ta macro. Attention, tu dois utiliser le nom des objets et non pas le nom des onglets des feuilles par exemple. Application.Run "Classeur4!ThisWorkbook.test"
P.S. Lorsque dans un module de classe, tu affubles la déclaration d'une macro de "Public", tu ajoutes à ce module de classe une méthode et elle est accesible dans tout le classeur :
Exemple : En module de la feuil1 d'un classeur Public Sub Denis() Msgbox "Bonjour" End Sub
Observe ce qui se passe, si dans la feuille module Feuil2, tu inscris dans une ligne de code Feuil1.Denis ... si après le point tu type D... dans la liste proposée des méthodes et propriétés de la feuil2, tu retrouveras "Denis" avec le même icône que la méthode "Delete".
Si tu définis dans le haut d'un module de classe une variable "Public" la variable ainsi définit devient une propriété de ce module de classe.
Salutations!
"myname" a écrit dans le message de news: 440823ca$ Bonjour,
je crée une "public sub test" dans la partie "ThisWorkbook" d'un classeur.
Je voudrais l'appeler depuis un autre classseur.
Après ouverture dans une variable wb, je fais :
wb.test
Mais ça me répond "cet objet ne gère pas cette méthode".
Par contre, si je la mets dans une feuille et écris :
wb.sheets(1).test
Ca marche !
Comment puis-je résoudre mon problème d'appel vers ThisWorkbook ?
Bonjour MyName,
De façon générale pour appeler une macro dans un autre classeur ouvert,
Il y a cette syntaxe seulement si ta macro est dans un module standard.
Que ta macro soit déclarée "Private" ou "Public" ne fait pas de différence
si tu utilise la commande : Application.Run...
Application.Run "Classeur1.xls!NomDeLaMacro"
Si ta macro est situé dans un module de classe : ThisWorkboo, Toutes les feuilles module
ou si tu as ajouté un module de classe ...
Tu dois spécifier dans quel module de classe se situe ta macro.
Attention, tu dois utiliser le nom des objets et non pas le nom des onglets
des feuilles par exemple.
Application.Run "Classeur4!ThisWorkbook.test"
P.S. Lorsque dans un module de classe, tu affubles la déclaration d'une macro de "Public",
tu ajoutes à ce module de classe une méthode et elle est accesible dans tout le classeur :
Exemple : En module de la feuil1 d'un classeur
Public Sub Denis()
Msgbox "Bonjour"
End Sub
Observe ce qui se passe, si dans la feuille module Feuil2,
tu inscris dans une ligne de code Feuil1.Denis ... si après
le point tu type D... dans la liste proposée des méthodes et propriétés
de la feuil2, tu retrouveras "Denis" avec le même icône que
la méthode "Delete".
Si tu définis dans le haut d'un module de classe une variable "Public"
la variable ainsi définit devient une propriété de ce module de classe.
Salutations!
"myname" <nospam@ihatespam.com> a écrit dans le message de news: 440823ca$1@news.sncf.fr...
Bonjour,
je crée une "public sub test" dans la partie "ThisWorkbook" d'un classeur.
Je voudrais l'appeler depuis un autre classseur.
Après ouverture dans une variable wb, je fais :
wb.test
Mais ça me répond "cet objet ne gère pas cette méthode".
Par contre, si je la mets dans une feuille et écris :
wb.sheets(1).test
Ca marche !
Comment puis-je résoudre mon problème d'appel vers ThisWorkbook ?
De façon générale pour appeler une macro dans un autre classeur ouvert,
Il y a cette syntaxe seulement si ta macro est dans un module standard. Que ta macro soit déclarée "Private" ou "Public" ne fait pas de différence si tu utilise la commande : Application.Run... Application.Run "Classeur1.xls!NomDeLaMacro"
Si ta macro est situé dans un module de classe : ThisWorkboo, Toutes les feuilles module ou si tu as ajouté un module de classe ... Tu dois spécifier dans quel module de classe se situe ta macro. Attention, tu dois utiliser le nom des objets et non pas le nom des onglets des feuilles par exemple. Application.Run "Classeur4!ThisWorkbook.test"
P.S. Lorsque dans un module de classe, tu affubles la déclaration d'une macro de "Public", tu ajoutes à ce module de classe une méthode et elle est accesible dans tout le classeur :
Exemple : En module de la feuil1 d'un classeur Public Sub Denis() Msgbox "Bonjour" End Sub
Observe ce qui se passe, si dans la feuille module Feuil2, tu inscris dans une ligne de code Feuil1.Denis ... si après le point tu type D... dans la liste proposée des méthodes et propriétés de la feuil2, tu retrouveras "Denis" avec le même icône que la méthode "Delete".
Si tu définis dans le haut d'un module de classe une variable "Public" la variable ainsi définit devient une propriété de ce module de classe.
Salutations!
"myname" a écrit dans le message de news: 440823ca$ Bonjour,
je crée une "public sub test" dans la partie "ThisWorkbook" d'un classeur.
Je voudrais l'appeler depuis un autre classseur.
Après ouverture dans une variable wb, je fais :
wb.test
Mais ça me répond "cet objet ne gère pas cette méthode".
Par contre, si je la mets dans une feuille et écris :
wb.sheets(1).test
Ca marche !
Comment puis-je résoudre mon problème d'appel vers ThisWorkbook ?