OVH Cloud OVH Cloud

XLA et attente

8 réponses
Avatar
JohnFuss
Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de ces xla
contient un traitement qui ne doit démarrer que lorsque toutes les autres
xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John

8 réponses

Avatar
michdenis
Bonjour John,

Ce qui suit n'a pas été testé explicitement ...

A ) les macros complémentaires se chargent d'après l'ordre dans lequel elles sont affichées et cochées dans la fenêtre Menu / outils
/ macro complémentaires / ... équivalent à l'ordre alphabétique du nom du fichier xla. Si ta macro complémentaire problématique
porte le nom de zzz.xla, elle devrait se charger en dernier lieu !!!!

B ) Pourquoi ne pas utiliser une procédure événementielle comme celle-ci:

'----------------------
Private Sub Workbook_AddinInstall()

'1 - Procédure de vérification des macros complémentaires chargées
'2 - Ou, installation des macros compl. requises.
'3 - Lancement de ta procédure problématique.

End Sub
'----------------------
dans le Thisworkbook de ton fichier complémentaire problématique qui a
pour but de vérifier si effectivement toutes les macros complémentaires requises
sont chargées si non, les lancer avant de lancer "La PROCÉDURE".

Au besoin, si toutes les macros complémenaires doivent être présentes "en Bloc",
tu peux ajouter dans le thisWorkbook de chacune d'elles, ceci :

'-------------------------
Private Sub Workbook_AddinUninstall()

'décharge toutes les macros complémentaires liées dès
'qu'une du groupe est désinstallé par un usager.

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


Salutations!



"JohnFuss" a écrit dans le message de news: dl9s6v$t51$
Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de ces xla
contient un traitement qui ne doit démarrer que lorsque toutes les autres
xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John
Avatar
JohnFuss
Bonjour,

je jete un oeil à ta fin de mail, sinon pour le zzz.xla ça ne fonctionne pas
comme ça, il y a une clef de registre contenant la liste des xla à charger
au démarrage d'Excel et elles sont chargées dans l'ordre de la liste et
cette liste n'est pas modifiable lorsque qu'Excel est ouvert car il la
recréé à la fermeture.

Merci

John

"michdenis" a écrit dans le message de
news:
Bonjour John,

Ce qui suit n'a pas été testé explicitement ...

A ) les macros complémentaires se chargent d'après l'ordre dans lequel
elles sont affichées et cochées dans la fenêtre Menu / outils

/ macro complémentaires / ... équivalent à l'ordre alphabétique du nom du
fichier xla. Si ta macro complémentaire problématique

porte le nom de zzz.xla, elle devrait se charger en dernier lieu !!!!

B ) Pourquoi ne pas utiliser une procédure événementielle comme celle-ci:

'----------------------
Private Sub Workbook_AddinInstall()

'1 - Procédure de vérification des macros complémentaires chargées
'2 - Ou, installation des macros compl. requises.
'3 - Lancement de ta procédure problématique.

End Sub
'----------------------
dans le Thisworkbook de ton fichier complémentaire problématique qui a
pour but de vérifier si effectivement toutes les macros complémentaires
requises

sont chargées si non, les lancer avant de lancer "La PROCÉDURE".

Au besoin, si toutes les macros complémenaires doivent être présentes "en
Bloc",

tu peux ajouter dans le thisWorkbook de chacune d'elles, ceci :

'-------------------------
Private Sub Workbook_AddinUninstall()

'décharge toutes les macros complémentaires liées dès
'qu'une du groupe est désinstallé par un usager.

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


Salutations!



"JohnFuss" a écrit dans le message de news:
dl9s6v$t51$

Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de ces
xla

contient un traitement qui ne doit démarrer que lorsque toutes les autres
xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John





Avatar
JohnFuss
L'evenement Private Sub Workbook_AddinInstall()
ne fonctionne apparement que lorsque l'installation d'une macro xla a été
faite via la fenetre d'ajout de macros complémenatires et je ne peux (veux)
pas modifier toutes les macros déja développées/déployées. Ce qui ne me
reste qu'à trouver une astuce pour mettre en attente la macro posant des
soucis jusqu'à ce qu'Excel est fini de charger les autres xla.

John

"JohnFuss" a écrit dans le message de
news:dla5qe$44c$
Bonjour,

je jete un oeil à ta fin de mail, sinon pour le zzz.xla ça ne fonctionne
pas

comme ça, il y a une clef de registre contenant la liste des xla à charger
au démarrage d'Excel et elles sont chargées dans l'ordre de la liste et
cette liste n'est pas modifiable lorsque qu'Excel est ouvert car il la
recréé à la fermeture.

Merci

John

"michdenis" a écrit dans le message de
news:
Bonjour John,

Ce qui suit n'a pas été testé explicitement ...

A ) les macros complémentaires se chargent d'après l'ordre dans lequel
elles sont affichées et cochées dans la fenêtre Menu / outils

/ macro complémentaires / ... équivalent à l'ordre alphabétique du nom
du


fichier xla. Si ta macro complémentaire problématique
porte le nom de zzz.xla, elle devrait se charger en dernier lieu !!!!

B ) Pourquoi ne pas utiliser une procédure événementielle comme
celle-ci:



'----------------------
Private Sub Workbook_AddinInstall()

'1 - Procédure de vérification des macros complémentaires chargées
'2 - Ou, installation des macros compl. requises.
'3 - Lancement de ta procédure problématique.

End Sub
'----------------------
dans le Thisworkbook de ton fichier complémentaire problématique qui a
pour but de vérifier si effectivement toutes les macros complémentaires
requises

sont chargées si non, les lancer avant de lancer "La PROCÉDURE".

Au besoin, si toutes les macros complémenaires doivent être présentes
"en


Bloc",
tu peux ajouter dans le thisWorkbook de chacune d'elles, ceci :

'-------------------------
Private Sub Workbook_AddinUninstall()

'décharge toutes les macros complémentaires liées dès
'qu'une du groupe est désinstallé par un usager.

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


Salutations!



"JohnFuss" a écrit dans le message de news:
dl9s6v$t51$

Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de ces
xla

contient un traitement qui ne doit démarrer que lorsque toutes les
autres


xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John









Avatar
michdenis
Bonjour John,

A ) L'ordre de chargement des macros :
Je croyais que tu voulais charger les macros complémentaires à l'ouverture d'excel. Non ???????????

B ) Si ces macros doivent être présents seulement quant un fichier particulier s'ouvre...tu adoptes la même stratégie comme si
c'était une barre d'outils à charger et ce par les événements du ThisWorkbook dudit fichier. A la fermeture du fichier , tu
désinstalles les macros complémentaires visées. Tu pourras alors procéder à l'installation des macros complémentaires dans l'ordre
que tu désires. Non ????????????

C ) Pour ce qui est de la procédure : Workbook_AddinInstall
Lorsque les macros complémentaires qu'excel doit charger à
l'ouverture ont déjà été cochées, (chargées, installées),
évidemment la procédure ne va pas s'exécuter à nouveau.

Mais l'installation peut être faite soit manuellement dans la fenêtre
des macros complémentaires, soit par programmation ... et ce
seulement si elles ne sont pas déjà présentes.

D ) si l'usager peut selon son bon vouloir désinstaller ou installer la macro ou les macros complémentaires selon son bon
vouloir...je ne connais pas beaucoup de procédures susceptibles de faire le travail que tu demandes. C'est à toi de définir certains
paramètres :
- quand ces macros doivent-elles être présentes ?
- peuvent-elles être présentes séparéments ? Est-ce que tu laisses le choix à l'usager ? Est-ce que ton code de chaque fichier xla
est indépendant l'un de l'autre ?.... et selon les réponses que tu va donner, tu développes une stratégie qui répondra à chacune de
tes préoccupations !


Salutations!





"JohnFuss" a écrit dans le message de news: dla68q$4dr$
L'evenement Private Sub Workbook_AddinInstall()
ne fonctionne apparement que lorsque l'installation d'une macro xla a été
faite via la fenetre d'ajout de macros complémenatires et je ne peux (veux)
pas modifier toutes les macros déja développées/déployées. Ce qui ne me
reste qu'à trouver une astuce pour mettre en attente la macro posant des
soucis jusqu'à ce qu'Excel est fini de charger les autres xla.

John

"JohnFuss" a écrit dans le message de
news:dla5qe$44c$
Bonjour,

je jete un oeil à ta fin de mail, sinon pour le zzz.xla ça ne fonctionne
pas

comme ça, il y a une clef de registre contenant la liste des xla à charger
au démarrage d'Excel et elles sont chargées dans l'ordre de la liste et
cette liste n'est pas modifiable lorsque qu'Excel est ouvert car il la
recréé à la fermeture.

Merci

John

"michdenis" a écrit dans le message de
news:
Bonjour John,

Ce qui suit n'a pas été testé explicitement ...

A ) les macros complémentaires se chargent d'après l'ordre dans lequel
elles sont affichées et cochées dans la fenêtre Menu / outils

/ macro complémentaires / ... équivalent à l'ordre alphabétique du nom
du


fichier xla. Si ta macro complémentaire problématique
porte le nom de zzz.xla, elle devrait se charger en dernier lieu !!!!

B ) Pourquoi ne pas utiliser une procédure événementielle comme
celle-ci:



'----------------------
Private Sub Workbook_AddinInstall()

'1 - Procédure de vérification des macros complémentaires chargées
'2 - Ou, installation des macros compl. requises.
'3 - Lancement de ta procédure problématique.

End Sub
'----------------------
dans le Thisworkbook de ton fichier complémentaire problématique qui a
pour but de vérifier si effectivement toutes les macros complémentaires
requises

sont chargées si non, les lancer avant de lancer "La PROCÉDURE".

Au besoin, si toutes les macros complémenaires doivent être présentes
"en


Bloc",
tu peux ajouter dans le thisWorkbook de chacune d'elles, ceci :

'-------------------------
Private Sub Workbook_AddinUninstall()

'décharge toutes les macros complémentaires liées dès
'qu'une du groupe est désinstallé par un usager.

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


Salutations!



"JohnFuss" a écrit dans le message de news:
dl9s6v$t51$

Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de ces
xla

contient un traitement qui ne doit démarrer que lorsque toutes les
autres


xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John









Avatar
JohnFuss
Merci bien, je reposterai quand je me serai dépatouiller de tout ça.

John

"michdenis" a écrit dans le message de
news:O4P$
Bonjour John,

A ) L'ordre de chargement des macros :
Je croyais que tu voulais charger les macros complémentaires à l'ouverture
d'excel. Non ???????????


B ) Si ces macros doivent être présents seulement quant un fichier
particulier s'ouvre...tu adoptes la même stratégie comme si

c'était une barre d'outils à charger et ce par les événements du
ThisWorkbook dudit fichier. A la fermeture du fichier , tu

désinstalles les macros complémentaires visées. Tu pourras alors procéder
à l'installation des macros complémentaires dans l'ordre

que tu désires. Non ????????????

C ) Pour ce qui est de la procédure : Workbook_AddinInstall
Lorsque les macros complémentaires qu'excel doit charger à
l'ouverture ont déjà été cochées, (chargées, installées),
évidemment la procédure ne va pas s'exécuter à nouveau.

Mais l'installation peut être faite soit manuellement dans la fenêtre
des macros complémentaires, soit par programmation ... et ce
seulement si elles ne sont pas déjà présentes.

D ) si l'usager peut selon son bon vouloir désinstaller ou installer la
macro ou les macros complémentaires selon son bon

vouloir...je ne connais pas beaucoup de procédures susceptibles de faire
le travail que tu demandes. C'est à toi de définir certains

paramètres :
- quand ces macros doivent-elles être présentes ?
- peuvent-elles être présentes séparéments ? Est-ce que tu laisses le
choix à l'usager ? Est-ce que ton code de chaque fichier xla

est indépendant l'un de l'autre ?.... et selon les réponses que tu va
donner, tu développes une stratégie qui répondra à chacune de

tes préoccupations !


Salutations!





"JohnFuss" a écrit dans le message de news:
dla68q$4dr$

L'evenement Private Sub Workbook_AddinInstall()
ne fonctionne apparement que lorsque l'installation d'une macro xla a été
faite via la fenetre d'ajout de macros complémenatires et je ne peux
(veux)

pas modifier toutes les macros déja développées/déployées. Ce qui ne me
reste qu'à trouver une astuce pour mettre en attente la macro posant des
soucis jusqu'à ce qu'Excel est fini de charger les autres xla.

John

"JohnFuss" a écrit dans le message de
news:dla5qe$44c$
Bonjour,

je jete un oeil à ta fin de mail, sinon pour le zzz.xla ça ne fonctionne
pas

comme ça, il y a une clef de registre contenant la liste des xla à
charger


au démarrage d'Excel et elles sont chargées dans l'ordre de la liste et
cette liste n'est pas modifiable lorsque qu'Excel est ouvert car il la
recréé à la fermeture.

Merci

John

"michdenis" a écrit dans le message de
news:
Bonjour John,

Ce qui suit n'a pas été testé explicitement ...

A ) les macros complémentaires se chargent d'après l'ordre dans lequel
elles sont affichées et cochées dans la fenêtre Menu / outils

/ macro complémentaires / ... équivalent à l'ordre alphabétique du
nom



du
fichier xla. Si ta macro complémentaire problématique
porte le nom de zzz.xla, elle devrait se charger en dernier lieu !!!!

B ) Pourquoi ne pas utiliser une procédure événementielle comme
celle-ci:



'----------------------
Private Sub Workbook_AddinInstall()

'1 - Procédure de vérification des macros complémentaires chargées
'2 - Ou, installation des macros compl. requises.
'3 - Lancement de ta procédure problématique.

End Sub
'----------------------
dans le Thisworkbook de ton fichier complémentaire problématique qui
a



pour but de vérifier si effectivement toutes les macros
complémentaires



requises
sont chargées si non, les lancer avant de lancer "La PROCÉDURE".

Au besoin, si toutes les macros complémenaires doivent être présentes
"en


Bloc",
tu peux ajouter dans le thisWorkbook de chacune d'elles, ceci :

'-------------------------
Private Sub Workbook_AddinUninstall()

'décharge toutes les macros complémentaires liées dès
'qu'une du groupe est désinstallé par un usager.

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


Salutations!



"JohnFuss" a écrit dans le message de news:
dl9s6v$t51$

Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de
ces



xla
contient un traitement qui ne doit démarrer que lorsque toutes les
autres


xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John














Avatar
Ange Ounis
Pour "maîtriser" le lancement des macros complémentaires au démarrage d'Excel et
surtout l'ordre de ce lancement, une astuce possible est de prendre Excel en
quelque sorte à contre-pied et de lancer les macros complémentaires comme de
simples classeurs et non comme des addins.
Pour cela tu te construis un xla (que tu vas installer) qui va lancer, lors de
son ouverture, les autres xla dans l'ordre de ton choix et les fermer à sa
propre fermeture.
Le code est de ce style (dans le module ThisWorkbook du xla "lanceur") :

''''''''''''''''''''''''''''
Const Macro1 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro1.xla"
Const Macro2 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro2.xla"
Const Macro3 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro3.xla"
'etc.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "fermé"
On Error Resume Next
Workbooks(Macro1).Close False
Workbooks(Macro2).Close False
Workbooks(Macro3).Close False
End Sub

Private Sub Workbook_Open()
MsgBox "ouvert"
Workbooks.Open Macro1
Workbooks.Open Macro2
Workbooks.Open Macro3
End Sub
''''''''''''''''''''''''''''

En utilisant cette méthode les xla lancés ne sont *pas* inscrits dans la base de
registre, inscription dont Excel garde une trace (peut-être dans le fichier de
configuration .xlb) qui fait échouer les tentatives de modifier l'ordre de
lancement des xla en intervenant sur les clés OPEN dans la base de registre.

----------
Ange Ounis
----------

Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de ces xla
contient un traitement qui ne doit démarrer que lorsque toutes les autres
xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John




Avatar
Ange Ounis
Evidemment les MsgBox sont à virer du code utile !..

----------
Ange Ounis
----------

Pour "maîtriser" le lancement des macros complémentaires au démarrage
d'Excel et surtout l'ordre de ce lancement, une astuce possible est de
prendre Excel en quelque sorte à contre-pied et de lancer les macros
complémentaires comme de simples classeurs et non comme des addins.
Pour cela tu te construis un xla (que tu vas installer) qui va lancer,
lors de son ouverture, les autres xla dans l'ordre de ton choix et les
fermer à sa propre fermeture.
Le code est de ce style (dans le module ThisWorkbook du xla "lanceur") :

''''''''''''''''''''''''''''
Const Macro1 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro1.xla"
Const Macro2 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro2.xla"
Const Macro3 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro3.xla"
'etc.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "fermé"
On Error Resume Next
Workbooks(Macro1).Close False
Workbooks(Macro2).Close False
Workbooks(Macro3).Close False
End Sub

Private Sub Workbook_Open()
MsgBox "ouvert"
Workbooks.Open Macro1
Workbooks.Open Macro2
Workbooks.Open Macro3
End Sub
''''''''''''''''''''''''''''

En utilisant cette méthode les xla lancés ne sont *pas* inscrits dans la
base de registre, inscription dont Excel garde une trace (peut-être dans
le fichier de configuration .xlb) qui fait échouer les tentatives de
modifier l'ordre de lancement des xla en intervenant sur les clés OPEN
dans la base de registre.

----------
Ange Ounis
----------


Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de
ces xla
contient un traitement qui ne doit démarrer que lorsque toutes les autres
xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John






Avatar
JohnFuss
:) Merci bien je vais étudier ça, petite question au passage Excel ne charge
jamais plusieurs macros en simultané ?

John

"Ange Ounis" a écrit dans le message de
news:
Evidemment les MsgBox sont à virer du code utile !..

----------
Ange Ounis
----------

Pour "maîtriser" le lancement des macros complémentaires au démarrage
d'Excel et surtout l'ordre de ce lancement, une astuce possible est de
prendre Excel en quelque sorte à contre-pied et de lancer les macros
complémentaires comme de simples classeurs et non comme des addins.
Pour cela tu te construis un xla (que tu vas installer) qui va lancer,
lors de son ouverture, les autres xla dans l'ordre de ton choix et les
fermer à sa propre fermeture.
Le code est de ce style (dans le module ThisWorkbook du xla "lanceur") :

''''''''''''''''''''''''''''
Const Macro1 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro1.xla"
Const Macro2 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro2.xla"
Const Macro3 As String = _
"C:Program FilesMicrosoft OfficeOffice10MacrolibMacro3.xla"
'etc.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "fermé"
On Error Resume Next
Workbooks(Macro1).Close False
Workbooks(Macro2).Close False
Workbooks(Macro3).Close False
End Sub

Private Sub Workbook_Open()
MsgBox "ouvert"
Workbooks.Open Macro1
Workbooks.Open Macro2
Workbooks.Open Macro3
End Sub
''''''''''''''''''''''''''''

En utilisant cette méthode les xla lancés ne sont *pas* inscrits dans la
base de registre, inscription dont Excel garde une trace (peut-être dans
le fichier de configuration .xlb) qui fait échouer les tentatives de
modifier l'ordre de lancement des xla en intervenant sur les clés OPEN
dans la base de registre.

----------
Ange Ounis
----------


Bonjour,

j'ai une floppée de xla qui se chargent ou démarrage d'Excel, une de
ces xla
contient un traitement qui ne doit démarrer que lorsque toutes les
autres



xla ont finies de démarrer.

Comment puis-je m'y prendre (je veux conserver le caractère xla avec
démarrage au chargement d'Excel)

Merci d'avance.

John