J'ai deux macros portant un nom (.xla) différent mais issues toutes deux du
même fichier .xls. Lorsque je sélectionne ces deux macros dans macro
complémentaire, j'ai bien deux menu différents. Problème dans le code,
ThisWorbook.Name prends toujours le nom de la première macro ouverte ! Donc
si à l'ouvertre d'excel l'ordre est macro 1 et ensuite macro 2. Même si
j'utilise macro, ThisWorkbook.Name = Macro 1.
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
Frédéric Sigonneau
Bonsoir,
Une piste, pas testée non plus. Au lieu d'utiliser ThisWorkbook, déclare dans chacune des xla, dans un module standard, une constante (de même nom dans les deux cas) avec le nom de chacune d'elles comme valeur et utilise ensuite dans ton code la collection Workbooks avec cette constante :
Const NomXla As String = "MacroXla1.xla" (et dans l'autre : Const NomXla As String = "MacroXla2.xla")
et dans ton code, quelle que soit la macro :
MsgBox Workbooks(NomXla).Name
devrait renvoyer le résultat attendu... (on croise les doigts :)
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour,
J'ai deux macros portant un nom (.xla) différent mais issues toutes deux du même fichier .xls. Lorsque je sélectionne ces deux macros dans macro complémentaire, j'ai bien deux menu différents. Problème dans le code, ThisWorbook.Name prends toujours le nom de la première macro ouverte ! Donc si à l'ouvertre d'excel l'ordre est macro 1 et ensuite macro 2. Même si j'utilise macro, ThisWorkbook.Name = Macro 1.
Comment remédier à cela ??
Merci de vos réponses
Bonsoir,
Une piste, pas testée non plus.
Au lieu d'utiliser ThisWorkbook, déclare dans chacune des xla, dans un module
standard, une constante (de même nom dans les deux cas) avec le nom de chacune
d'elles comme valeur et utilise ensuite dans ton code la collection Workbooks
avec cette constante :
Const NomXla As String = "MacroXla1.xla"
(et dans l'autre :
Const NomXla As String = "MacroXla2.xla")
et dans ton code, quelle que soit la macro :
MsgBox Workbooks(NomXla).Name
devrait renvoyer le résultat attendu...
(on croise les doigts :)
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour,
J'ai deux macros portant un nom (.xla) différent mais issues toutes deux du
même fichier .xls. Lorsque je sélectionne ces deux macros dans macro
complémentaire, j'ai bien deux menu différents. Problème dans le code,
ThisWorbook.Name prends toujours le nom de la première macro ouverte ! Donc
si à l'ouvertre d'excel l'ordre est macro 1 et ensuite macro 2. Même si
j'utilise macro, ThisWorkbook.Name = Macro 1.
Une piste, pas testée non plus. Au lieu d'utiliser ThisWorkbook, déclare dans chacune des xla, dans un module standard, une constante (de même nom dans les deux cas) avec le nom de chacune d'elles comme valeur et utilise ensuite dans ton code la collection Workbooks avec cette constante :
Const NomXla As String = "MacroXla1.xla" (et dans l'autre : Const NomXla As String = "MacroXla2.xla")
et dans ton code, quelle que soit la macro :
MsgBox Workbooks(NomXla).Name
devrait renvoyer le résultat attendu... (on croise les doigts :)
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour,
J'ai deux macros portant un nom (.xla) différent mais issues toutes deux du même fichier .xls. Lorsque je sélectionne ces deux macros dans macro complémentaire, j'ai bien deux menu différents. Problème dans le code, ThisWorbook.Name prends toujours le nom de la première macro ouverte ! Donc si à l'ouvertre d'excel l'ordre est macro 1 et ensuite macro 2. Même si j'utilise macro, ThisWorkbook.Name = Macro 1.