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

Menu spécifique pour une 'application'

4 réponses
Avatar
Pounet95
Bonjour à toutes et tous,
XL2000 sous XP et Windows2000

Pour un besoin spécifique ( recensement des activités mensuelles ), j'ai
développé une appli
dans laquelle je créé un menu que j'ajoute à la barre de menus existante.
Tant qu'une seule occurence de ce classeur est ouverte à la fois, pas de
problème.
Par contre, quand plusieurs occurences ( noms différents mais même classeur
en fait ) sont ouvertes
en même temps, les sous-menus du menu ajouté ne peuvent fonctionner car la
macro associée
n'est pas trouvée.
L'explication est, je pense, que chaque classeur, même sous un nom
différent, créé le même menu
en ayant soin de supprimer la version précédente ( macro appelée dans le
Workbook_Open ).
J'ai bien tenté de remettre 'à jour' le menu e utilisant l'évènement
Worbook_Activate.
Cela fonctionne (suppression et création dans la foulée dudit menu ) mais
s'il s'agit d'un copier-coller
entre classeurs , tout est perdu ........;o((((((((((((((

Comment pourrais-je faire pour palier à ces problèmes ? ( ou palier ces
problèmes ,,, )
J'ai pensé à enregistrer la macro de création du menu et celles des
sous-menus associés dans
un fichier zzz.xla.

Mes problèmes :
- comment vérifier à partir du classeur ayant besoin des fonctionnalités du
menu que ce dernier est bien présent ( addins .???? )
- comment contrôler que le classeur actif n'a pas besoin dudit menu ?

Bref, je suis dans la panade !

D'avance, je vous remercie de vos suggestions
Pounet95

4 réponses

Avatar
Corto
Bonjour Pounet95,
Ton problème est assez vaste et je vais tenter d'apporter une partie de
réponse.
Effectivement si plusieurs classeurs ont la création du même menu dan s
Worbook_Open, c'est le dernier ouvert qui écrase les précédents.
Tu pourrais contourner ce problème en testant si le menu existe déjà ou
non dans la macro de création.
Le problème est celui des fonctions appelées par le menu qui diffèr ent
selon les classeurs. car apparemment chaque classeur crée un menu qui n e
fonctionne que pour lui. Il faut donc créer une source unique pour
toutes les fonctions qui fonctionne sur tous tes classeurs.
Deux solutions me paraissent donc possible :
1-Utiliser un classeur caché qui contiendrait les fonctions et qui
serait ouvert à la création du menu. Dans ce cas là chacun de tes
classeur aurait une macro Workbook_Open qui ouvrirait le classeur caché
s'il n'est pas déjà ouvert. Dans ce classeur contenant les options du
menu, une macro Workbook_open Créerait le menu. Si le classeur est dé jà
ouvert, il mettrait juste la propriété visible du menu à True.
2-Créer un addin (.xla) qui contiendrait la création du menu dans
Addin_Install ainsi que les fonctions correspondant aux options du menu.
Dans ce cas là c'est à toi de l'ajouter ou de le supprimer dans Macro s
Complémentaires.
Dans les deux cas une fois le menu créé, tu peux l'afficher ou le cac hé
selon que le classeur actif en a besoin ou non.
Désolé de ne pouvoir être plus précis mais sans exemple concret c 'est
tout ce que je vois.

Corto

Bonjour à toutes et tous,
XL2000 sous XP et Windows2000

Pour un besoin spécifique ( recensement des activités mensuelles ),
j'ai développé une appli
dans laquelle je créé un menu que j'ajoute à la barre de menus ex istante.
Tant qu'une seule occurence de ce classeur est ouverte à la fois, pas
de problème.
Par contre, quand plusieurs occurences ( noms différents mais même
classeur en fait ) sont ouvertes
en même temps, les sous-menus du menu ajouté ne peuvent fonctionner
car la macro associée
n'est pas trouvée.
L'explication est, je pense, que chaque classeur, même sous un nom
différent, créé le même menu
en ayant soin de supprimer la version précédente ( macro appelée dans
le Workbook_Open ).
J'ai bien tenté de remettre 'à jour' le menu e utilisant l'évèn ement
Worbook_Activate.
Cela fonctionne (suppression et création dans la foulée dudit menu )
mais s'il s'agit d'un copier-coller
entre classeurs , tout est perdu ........;o((((((((((((((

Comment pourrais-je faire pour palier à ces problèmes ? ( ou palier
ces problèmes ,,, )
J'ai pensé à enregistrer la macro de création du menu et celles d es
sous-menus associés dans
un fichier zzz.xla.

Mes problèmes :
- comment vérifier à partir du classeur ayant besoin des
fonctionnalités du menu que ce dernier est bien présent ( addins .? ??? )
- comment contrôler que le classeur actif n'a pas besoin dudit menu ?

Bref, je suis dans la panade !

D'avance, je vous remercie de vos suggestions
Pounet95




Avatar
Pounet95
Bonjour Corto,
Merci de ta réponse. Je me demandais si j'avais été assez clair d'une part
( pas sûr ! ) et s'il y avait effectivement une solution à ce problème.
Entre temps, j'ai tenté de créer un xla avec les macros qui vont bien et qui
ne sera utilisable qu'avec un certain type de classeur ( ceux servant aux
utilisateur pour saisir leurs activités ).
Entre chemin où sera ce classeur, son effacement éventuel de la base de
registre ( y a pas delete ou remove pour addins ! ) qui n'est possible que
par suppression dudit fichier via l'explorateur à cause des droits
administrateurs de nos postes, j'avance mais à tous petits pas.
Je crois que ta proposition n°1 va recueillir mon adhésion.
Je pars dans cette direction et tente de me souvenir de (te) dire quand ça
fonctionne.
Re merci
Pounet95

"Corto" a écrit dans le message de
news:%
Bonjour Pounet95,
Ton problème est assez vaste et je vais tenter d'apporter une partie de
réponse.
Effectivement si plusieurs classeurs ont la création du même menu dans
Worbook_Open, c'est le dernier ouvert qui écrase les précédents.
Tu pourrais contourner ce problème en testant si le menu existe déjà ou
non dans la macro de création.
Le problème est celui des fonctions appelées par le menu qui diffèrent
selon les classeurs. car apparemment chaque classeur crée un menu qui ne
fonctionne que pour lui. Il faut donc créer une source unique pour
toutes les fonctions qui fonctionne sur tous tes classeurs.
Deux solutions me paraissent donc possible :
1-Utiliser un classeur caché qui contiendrait les fonctions et qui
serait ouvert à la création du menu. Dans ce cas là chacun de tes
classeur aurait une macro Workbook_Open qui ouvrirait le classeur caché
s'il n'est pas déjà ouvert. Dans ce classeur contenant les options du
menu, une macro Workbook_open Créerait le menu. Si le classeur est déjà
ouvert, il mettrait juste la propriété visible du menu à True.
2-Créer un addin (.xla) qui contiendrait la création du menu dans
Addin_Install ainsi que les fonctions correspondant aux options du menu.
Dans ce cas là c'est à toi de l'ajouter ou de le supprimer dans Macros
Complémentaires.
Dans les deux cas une fois le menu créé, tu peux l'afficher ou le caché
selon que le classeur actif en a besoin ou non.
Désolé de ne pouvoir être plus précis mais sans exemple concret c'est
tout ce que je vois.

Corto

Bonjour à toutes et tous,
XL2000 sous XP et Windows2000

Pour un besoin spécifique ( recensement des activités mensuelles ), j'ai
développé une appli
dans laquelle je créé un menu que j'ajoute à la barre de menus existante.
Tant qu'une seule occurence de ce classeur est ouverte à la fois, pas de
problème.
Par contre, quand plusieurs occurences ( noms différents mais même
classeur en fait ) sont ouvertes
en même temps, les sous-menus du menu ajouté ne peuvent fonctionner car la
macro associée
n'est pas trouvée.
L'explication est, je pense, que chaque classeur, même sous un nom
différent, créé le même menu
en ayant soin de supprimer la version précédente ( macro appelée dans le
Workbook_Open ).
J'ai bien tenté de remettre 'à jour' le menu e utilisant l'évènement
Worbook_Activate.
Cela fonctionne (suppression et création dans la foulée dudit menu ) mais
s'il s'agit d'un copier-coller
entre classeurs , tout est perdu ........;o((((((((((((((

Comment pourrais-je faire pour palier à ces problèmes ? ( ou palier ces
problèmes ,,, )
J'ai pensé à enregistrer la macro de création du menu et celles des
sous-menus associés dans
un fichier zzz.xla.

Mes problèmes :
- comment vérifier à partir du classeur ayant besoin des fonctionnalités
du menu que ce dernier est bien présent ( addins .???? )
- comment contrôler que le classeur actif n'a pas besoin dudit menu ?

Bref, je suis dans la panade !

D'avance, je vous remercie de vos suggestions
Pounet95




Avatar
Pounet95
Bonjour,
Petit à petit, j'avance !

J'ai maintenant à disposition une macro complémentaire que j'installe
éventuellement à l'ouverture des fichiers
dans laquelle elle doit intervenir, à l'aide de Addins.installed, et tout et
tout.

Dans chacun des fichiers utilisant les macros du .xla j'ai besoin d'inscrire
un paramètre déclaré

Public Const Version_Nxxx := "Version n° 3.1"

Comment puis-je faire pour qu'à l'ouverture du fichier utilisateur, je
puisse mettre dans la cellule A1de la feuille Accueil la valeur de cette
constante ?
J'ai bien tenté quelque chose du genre [A1].FormulaR1C1 ="=[mon
classeur.xla]!Version_Nxxx mais rien ;o((((

Une petite suggestion ??
Merci d'avance

"Pounet95" a écrit dans le message de
news:OZZo$
Bonjour à toutes et tous,
XL2000 sous XP et Windows2000

Pour un besoin spécifique ( recensement des activités mensuelles ), j'ai
développé une appli
dans laquelle je créé un menu que j'ajoute à la barre de menus existante.
Tant qu'une seule occurence de ce classeur est ouverte à la fois, pas de
problème.
Par contre, quand plusieurs occurences ( noms différents mais même
classeur en fait ) sont ouvertes
en même temps, les sous-menus du menu ajouté ne peuvent fonctionner car la
macro associée
n'est pas trouvée.
L'explication est, je pense, que chaque classeur, même sous un nom
différent, créé le même menu
en ayant soin de supprimer la version précédente ( macro appelée dans le
Workbook_Open ).
J'ai bien tenté de remettre 'à jour' le menu e utilisant l'évènement
Worbook_Activate.
Cela fonctionne (suppression et création dans la foulée dudit menu ) mais
s'il s'agit d'un copier-coller
entre classeurs , tout est perdu ........;o((((((((((((((

Comment pourrais-je faire pour palier à ces problèmes ? ( ou palier ces
problèmes ,,, )
J'ai pensé à enregistrer la macro de création du menu et celles des
sous-menus associés dans
un fichier zzz.xla.

Mes problèmes :
- comment vérifier à partir du classeur ayant besoin des fonctionnalités
du menu que ce dernier est bien présent ( addins .???? )
- comment contrôler que le classeur actif n'a pas besoin dudit menu ?

Bref, je suis dans la panade !

D'avance, je vous remercie de vos suggestions
Pounet95




Avatar
Pounet95
Bonsoir,
Pour info si ça peut aider .........
J'ai contourné le problème en nommant une cellule d'une feuille de la .xla
Version_Nxxx
et en y mettant la valeur voulue.
La syntaxe pour renseigner la feuille du classeur utilisant cette .xla est
alors :
[A1].FormulaR1C1= "='[mon classeur.xla]MaFeuille'!Version_Nxxx

.... et ça fait ce que je veux.
Nota : les feuilles de la .xla sont cachées en mettant à Vrai la prorpiété
Addins du ThisWorkbook de la .xla

Bonne soirée et à ma prochaine question !
Pounet95

"Pounet95" a écrit dans le message de
news:OZZo$
Bonjour à toutes et tous,
XL2000 sous XP et Windows2000

Pour un besoin spécifique ( recensement des activités mensuelles ), j'ai
développé une appli
dans laquelle je créé un menu que j'ajoute à la barre de menus existante.
Tant qu'une seule occurence de ce classeur est ouverte à la fois, pas de
problème.
Par contre, quand plusieurs occurences ( noms différents mais même
classeur en fait ) sont ouvertes
en même temps, les sous-menus du menu ajouté ne peuvent fonctionner car la
macro associée
n'est pas trouvée.
L'explication est, je pense, que chaque classeur, même sous un nom
différent, créé le même menu
en ayant soin de supprimer la version précédente ( macro appelée dans le
Workbook_Open ).
J'ai bien tenté de remettre 'à jour' le menu e utilisant l'évènement
Worbook_Activate.
Cela fonctionne (suppression et création dans la foulée dudit menu ) mais
s'il s'agit d'un copier-coller
entre classeurs , tout est perdu ........;o((((((((((((((

Comment pourrais-je faire pour palier à ces problèmes ? ( ou palier ces
problèmes ,,, )
J'ai pensé à enregistrer la macro de création du menu et celles des
sous-menus associés dans
un fichier zzz.xla.

Mes problèmes :
- comment vérifier à partir du classeur ayant besoin des fonctionnalités
du menu que ce dernier est bien présent ( addins .???? )
- comment contrôler que le classeur actif n'a pas besoin dudit menu ?

Bref, je suis dans la panade !

D'avance, je vous remercie de vos suggestions
Pounet95