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

Ordre d'exécution des macros complémentaires

11 réponses
Avatar
FdeCourt
Bonjour,

Comment d=E9finir l'ordre d'ex=E9cution des macros compl=E9mentaires ?
Dans la base de registre, les cl=E9 OPEN, OPEN1, OPEN2, etc..... ne me
permettent pas de modifier cet ordre.
La macro qui devait se lancer en dernier est dans la cl=E9 OPEN4, et
pourtant elle se lance en premier, alors que j'ai bien des cl=E9 OPEN,
OPEN1, OPEN2 et OPEN3, avec des macros qui sont valable.

La seule diff=E9rence que je peux vois, c'est que les macro OPEN, OPEN1,
OPEN2 et OPEN3 ne sont pas dans le r=E9pertoire par d=E9faut des macros
Excel.

Y a t'il une autre solution que de devoir d=E9placer ces macros ?

Merci pour votre aide

Cordialement,

F.

10 réponses

1 2
Avatar
MichDenis
Bonjour FdeCourt,

Au lieu de nous proposer des solutions, pourquoi ne pas débuter par nous expliquer la
nature de ton problème ?



"FdeCourt" a écrit dans le message de groupe de discussion :

Bonjour,

Comment définir l'ordre d'exécution des macros complémentaires ?
Dans la base de registre, les clé OPEN, OPEN1, OPEN2, etc..... ne me
permettent pas de modifier cet ordre.
La macro qui devait se lancer en dernier est dans la clé OPEN4, et
pourtant elle se lance en premier, alors que j'ai bien des clé OPEN,
OPEN1, OPEN2 et OPEN3, avec des macros qui sont valable.

La seule différence que je peux vois, c'est que les macro OPEN, OPEN1,
OPEN2 et OPEN3 ne sont pas dans le répertoire par défaut des macros
Excel.

Y a t'il une autre solution que de devoir déplacer ces macros ?

Merci pour votre aide

Cordialement,

F.
Avatar
Fdecourt
Bonjour MichDenis,

Justement, ce ne sont pas des solutions, puisqu'elles ne fonctionnent
pas ;)

Mon problème est qu'à mon XLA créé un menu, qui s'intègre dans le menu
d'un autre XLA (auquel je n'ai pas accès).
Pour éviter de créer deux fois le même menu, je test si le menu
précédent est créer, puis j'insère le miens.

Le problème est que le test d'existence du menu précédent est fait
avant que le menu soit créé.

Merci pour ton aide

Cordialement,

F.
Avatar
MichDenis
Explique un peu...

Un fichier de macros complémentaires qui crée un menu d'un autre fichier complémentaire
inaccessible... Pourquoi créer un menu qui est de toute façon inaccessible par son
interface de feuille de calcul ?

Décris un peu ton environnement...À quel moment se fait le chargement du fichier de macros
complémentaires inaccessibles ? À quel moment s'effectue le chargement de ton fichier de
macros complémentaires celui que tu peux accéder ?

Le menu créé par macro? C'est toute une barre de menu ? Un item du menu ?

Ne te gêne pas pour en donner de l'information ...




"Fdecourt" a écrit dans le message de groupe de discussion :

Bonjour MichDenis,

Justement, ce ne sont pas des solutions, puisqu'elles ne fonctionnent
pas ;)

Mon problème est qu'à mon XLA créé un menu, qui s'intègre dans le menu
d'un autre XLA (auquel je n'ai pas accès).
Pour éviter de créer deux fois le même menu, je test si le menu
précédent est créer, puis j'insère le miens.

Le problème est que le test d'existence du menu précédent est fait
avant que le menu soit créé.

Merci pour ton aide

Cordialement,

F.
Avatar
Fdecourt
Ok ok :

J'ai des macros complémentaire, dont l'origine est un produit
financier qui va créer un menu ("Extraction") à Gauche du "?" de la
barre de menu principale. Ce menu "Extraction" contient plusieurs sous
menu.

Ma macro rajoute un sous menu à ce menu "Extraction".

Pour m'assurer que le logiciel financier est bien installé, au
lancement de ma XLA, je vérifier que le menu "Extraction" existe. Si
c'est le cas, alors dans ce menu Extraction, j'insère mon menu.

La macro que j'utilise pour tester l'existence de mon menu est la
suivante :

For Each ctrl In CommandBars("Worksheet Menu Bar").Controls
If InStr(1, ctrl.Caption, "Extraction") > 1 Then
install_Extraction = True: Exit For
Next

Cette macro, qui est lancé par Workbook_Open ne me renvoit pas true,
car le menu coda semble s'installer quelques secondes après.

Merci pour ton aide

Cordialement,

F.
Avatar
MichDenis
Au lieu d'ajouter un sous menu à ce menu "Extraction", pourquoi ne pas ajouter des
commandes à un menu à côté du menu extraction ? Ce dernier serait entièrement sous ton
contrôle !





"Fdecourt" a écrit dans le message de groupe de discussion :

Ok ok :

J'ai des macros complémentaire, dont l'origine est un produit
financier qui va créer un menu ("Extraction") à Gauche du "?" de la
barre de menu principale. Ce menu "Extraction" contient plusieurs sous
menu.

Ma macro rajoute un sous menu à ce menu "Extraction".

Pour m'assurer que le logiciel financier est bien installé, au
lancement de ma XLA, je vérifier que le menu "Extraction" existe. Si
c'est le cas, alors dans ce menu Extraction, j'insère mon menu.

La macro que j'utilise pour tester l'existence de mon menu est la
suivante :

For Each ctrl In CommandBars("Worksheet Menu Bar").Controls
If InStr(1, ctrl.Caption, "Extraction") > 1 Then
install_Extraction = True: Exit For
Next

Cette macro, qui est lancé par Workbook_Open ne me renvoit pas true,
car le menu coda semble s'installer quelques secondes après.

Merci pour ton aide

Cordialement,

F.
Avatar
Fdecourt
Je suis d'accord.

Le seul problème est que mes macros utilise les fichier XLA
Extraction.
Ainsi lorsque je faisais mes bricolage, il arrivait que le premier
menu ("Extraction") n'apparaisse pas, alors que les macros étaient
bien référencées comme complémentaires.

Et pour la configuration de mes macros, il est parfois nécessaire de
passer par certain paramètres du Menu Extraction, c'est la seule
solution que j'ai trouvé pour vérifier l'installation et
l'accessibilité du menu Extraction.
Avatar
MichDenis
Pour ce qui est du fichier de macros complémentaires inaccessibles :

a ) Est-ce qu'il y a plus d'un fichier ou un seul fichier contenant les macros
complémentaires

b ) est-ce que ce fichier xla sert seulement pour l'application d'un fichier donné ?

c ) Est que ce(s) fichiers (xla) se chargent à l'ouverture d'Excel ou à l'ouverture d'un
fichier Excel particulier ? Si c'est selon la seconde proposition, est-ce que le fichier
xla est déclaré comme référence (voir la liste des références (outils / référence en vbe))
?



"Fdecourt" a écrit dans le message de groupe de discussion :

Je suis d'accord.

Le seul problème est que mes macros utilise les fichier XLA
Extraction.
Ainsi lorsque je faisais mes bricolage, il arrivait que le premier
menu ("Extraction") n'apparaisse pas, alors que les macros étaient
bien référencées comme complémentaires.

Et pour la configuration de mes macros, il est parfois nécessaire de
passer par certain paramètres du Menu Extraction, c'est la seule
solution que j'ai trouvé pour vérifier l'installation et
l'accessibilité du menu Extraction.
Avatar
Fdecourt
MichDenis,

Il y a plusieurs fichiers contenant des macros complémentaire.

Ces fichiers ne servent pas que pour un fichier particulier. Elles
sont utilisables sur n'importe quel fichier. Certaine de ces macros
sont des formules qui sont utilisable dans tout fichier.

Elles se chargent à l'ouverture d'Excel (les macros propriétaires et
les miennes).

Elles sont effectivement référencé dans les reférences de VBE.

Merci pour ton aide

Cordialement,

F.
Avatar
MichDenis
Je ne comprends pas tout de ton environnement de travail...

Si tous tes fichiers de macros complémentaires s'ouvrent en même temps qu'Excel, cela
signifie que l'ajout d'un item au menu s'effectue dès l'ouverture d'Excel. En fait, comme
tu n'as pas le contrôle sur l'ordre de chargement de ces fichiers, ton fichier de macros
complémentaires qui ajoute des éléments au sous-menu de l'item principal "Extraction" du
menu qui lui est chargé par un fichier de macros complémentaires dont tu n'as pas l'accès,
n'est pas nécessairement synchronisé. En conséquence, ta procédure qui ajoute les
sous-menus se plante si l'item du menu principale n'est pas déjà chargé(exécuté).

Une proposition : Dans ton fichier de macros complémentaires devant ajouter les éléments
du sous-menu, ajoute une temporisation à l'exécution de la procédure afin de t'assurer que
tous les fichiers de macros complémentaires sont chargés.

Dans le ThisWorkbook de ton fichier complémentaire responsable des items du sous-menu :

Selon ton environnement, tu adaptes le 15 secondes pour 30 si besoin.
Cela signifie qu'il y aura un délai de x secondes entre l'ouverture du fichier et
l'exécution de la procédure, laissant tout le temps aux autres fichiers de macros
complémentaires de se charger.
'--------------------------------------
Private Sub Workbook_Open()

Application.OnTime Now + TimeValue("00:00:15"), "MonMenu"

End Sub
'--------------------------------------






"Fdecourt" a écrit dans le message de groupe de discussion :

MichDenis,

Il y a plusieurs fichiers contenant des macros complémentaire.

Ces fichiers ne servent pas que pour un fichier particulier. Elles
sont utilisables sur n'importe quel fichier. Certaine de ces macros
sont des formules qui sont utilisable dans tout fichier.

Elles se chargent à l'ouverture d'Excel (les macros propriétaires et
les miennes).

Elles sont effectivement référencé dans les reférences de VBE.

Merci pour ton aide

Cordialement,

F.
Avatar
Fdecourt
MichDenis,

J'essaye la temporisation.

Et je dois avouer que moi non plus j'ai du mal à comprendre
l'environnement de travail. Tout a été fait pour ne pas être standard ,
bizaroide..... et bien sur rien n'est documenté.... un peu hard....

Merci pour ton aide

Cordialement,

F.
1 2