OVH Cloud OVH Cloud

Workbook_Open

8 réponses
Avatar
John Fuss
Bijour à ts,

j'aimerai relancer Workbook_Open depuis une Userform, est-ce possible ? Sans
relancer la macro ?

Merci d'avance.

John

8 réponses

Avatar
Philippe.R
Bonsoir John,
Pas sur de bien comprendre ce que tu veux ; Workbook_Open est une procédure événementielle du classeur
et elle s'exécute exclusivement à l'occasion de cet évènement ; je ne vois pas bien comment "la
relancer" si ce n'est en rouvrant le classeur.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"John Fuss" a écrit dans le message de
news:bod6ea$m94$
Bijour à ts,

j'aimerai relancer Workbook_Open depuis une Userform, est-ce possible ? Sans
relancer la macro ?

Merci d'avance.

John




Avatar
gee-dee-
;-)))
quitte à dire une connerie.....
tout ce qui se trouve dans la proc WorkbookOpen peut etre mis une proc dans
un module standard
et nommée par exemple MaProcOuvrir
il suffit alors dans la proc Workbookopen d'appeler MaProcOuvrir
puis éventuellement plus tard d'activer MaProcOuvrir a partir du Userform

non....????
Allez hop au lit !!!
@+
Avatar
Michel Gaboly
Bonsoir Philippe,

Workbook_Open est une procédure particulière, mais rien n'empêche de l'appeler:

Dans le module ThisWorkbook, copie cette procédure :

Private Sub Rappel()
Workbook_Open
End Sub

Tu verras qu'elle provoque la réexécution de la procédure Workbook_Open


Par ailleurs, mais ce n'est pas très orthodoxe, à condition d'enlever le "Private" présent par défaut dans
la procédure Workbook_Open, tu peux effectivement l'appeler ailleurs:

Crée un UserForm avec un CommandButton et entre ce code :

Private Sub CommandButton1_Click()
ThisWorkbook.Workbook_Open
End Sub

Là encore, la procédure Workbook_Open est exécutée quand tu cliques sur le bouton.


Tout ceci n'est effectivement pas orthodoxe, et une meilleure approche est celle de gee-dee-, qui consiste
à utiliser une procédure contenant les mêmes instruction que la procédure Workbook_Open.

Dans ce cas, le plus simple est d'écrire dans un module standard une procédure "Toto" sans le mot-clef
"Private"

et d'avoir dans ThisWorkbook :

Private Workbook_Open()
Toto
End Sub

et associé au bouton du UserForm :

Private Sub CommandButton1_Click()
Toto
End Sub



Bonsoir John,
Pas sur de bien comprendre ce que tu veux ; Workbook_Open est une procédure événementielle du classeur
et elle s'exécute exclusivement à l'occasion de cet évènement ; je ne vois pas bien comment "la
relancer" si ce n'est en rouvrant le classeur.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"John Fuss" a écrit dans le message de
news:bod6ea$m94$
Bijour à ts,

j'aimerai relancer Workbook_Open depuis une Userform, est-ce possible ? Sans
relancer la macro ?

Merci d'avance.

John





--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
Philippe.R
Merci Michel pour toutes ces précisions que j'archive et qui devraient profiter à John.

Pur ma part, je continuerai de préférence à rester dans l'orthodoxie, fort bien décrite par GeeDee et
toi même, qui consiste à utiliser la procédure open à l'ouverture et à ranger ce qui doit servir en
diverses occasions dans une sub de module standard qu'on appelle en tant que de besoin.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Michel Gaboly" a écrit dans le message de
news:
Bonsoir Philippe,

Workbook_Open est une procédure particulière, mais rien n'empêche de l'appeler:

Dans le module ThisWorkbook, copie cette procédure :

Private Sub Rappel()
Workbook_Open
End Sub

Tu verras qu'elle provoque la réexécution de la procédure Workbook_Open


Par ailleurs, mais ce n'est pas très orthodoxe, à condition d'enlever le "Private" présent par défaut
dans

la procédure Workbook_Open, tu peux effectivement l'appeler ailleurs:

Crée un UserForm avec un CommandButton et entre ce code :

Private Sub CommandButton1_Click()
ThisWorkbook.Workbook_Open
End Sub

Là encore, la procédure Workbook_Open est exécutée quand tu cliques sur le bouton.


Tout ceci n'est effectivement pas orthodoxe, et une meilleure approche est celle de gee-dee-, qui
consiste

à utiliser une procédure contenant les mêmes instruction que la procédure Workbook_Open.

Dans ce cas, le plus simple est d'écrire dans un module standard une procédure "Toto" sans le mot-clef
"Private"

et d'avoir dans ThisWorkbook :

Private Workbook_Open()
Toto
End Sub

et associé au bouton du UserForm :

Private Sub CommandButton1_Click()
Toto
End Sub



Bonsoir John,
Pas sur de bien comprendre ce que tu veux ; Workbook_Open est une procédure événementielle du
classeur


et elle s'exécute exclusivement à l'occasion de cet évènement ; je ne vois pas bien comment "la
relancer" si ce n'est en rouvrant le classeur.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"John Fuss" a écrit dans le message de
news:bod6ea$m94$
Bijour à ts,

j'aimerai relancer Workbook_Open depuis une Userform, est-ce possible ? Sans
relancer la macro ?

Merci d'avance.

John





--
Cordialement,

Michel Gaboly
http://www.gaboly.com






Avatar
Michel Gaboly
Re,

De rien Philippe, vive l'orthodoxie ;-)))


Merci Michel pour toutes ces précisions que j'archive et qui devraient profiter à John.

Pur ma part, je continuerai de préférence à rester dans l'orthodoxie, fort bien décrite par GeeDee et
toi même, qui consiste à utiliser la procédure open à l'ouverture et à ranger ce qui doit servir en
diverses occasions dans une sub de module standard qu'on appelle en tant que de besoin.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Michel Gaboly" a écrit dans le message de
news:
Bonsoir Philippe,

Workbook_Open est une procédure particulière, mais rien n'empêche de l'appeler:

Dans le module ThisWorkbook, copie cette procédure :

Private Sub Rappel()
Workbook_Open
End Sub

Tu verras qu'elle provoque la réexécution de la procédure Workbook_Open


Par ailleurs, mais ce n'est pas très orthodoxe, à condition d'enlever le "Private" présent par défaut
dans

la procédure Workbook_Open, tu peux effectivement l'appeler ailleurs:

Crée un UserForm avec un CommandButton et entre ce code :

Private Sub CommandButton1_Click()
ThisWorkbook.Workbook_Open
End Sub

Là encore, la procédure Workbook_Open est exécutée quand tu cliques sur le bouton.


Tout ceci n'est effectivement pas orthodoxe, et une meilleure approche est celle de gee-dee-, qui
consiste

à utiliser une procédure contenant les mêmes instruction que la procédure Workbook_Open.

Dans ce cas, le plus simple est d'écrire dans un module standard une procédure "Toto" sans le mot-clef
"Private"

et d'avoir dans ThisWorkbook :

Private Workbook_Open()
Toto
End Sub

et associé au bouton du UserForm :

Private Sub CommandButton1_Click()
Toto
End Sub



Bonsoir John,
Pas sur de bien comprendre ce que tu veux ; Workbook_Open est une procédure événementielle du
classeur


et elle s'exécute exclusivement à l'occasion de cet évènement ; je ne vois pas bien comment "la
relancer" si ce n'est en rouvrant le classeur.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"John Fuss" a écrit dans le message de
news:bod6ea$m94$
Bijour à ts,

j'aimerai relancer Workbook_Open depuis une Userform, est-ce possible ? Sans
relancer la macro ?

Merci d'avance.

John





--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
John Fuss
Bonjour à tous,

j'ai un pbl avec mon OE, je nbe vois pas le fil de mon message, ni mon
message d'ailleurs, c bizarre. Mais je vais vous expliquer prkoi je voulais
relancer Workbook_Open :

une macro xla me sert de créateur d'un menu Excel , mes autres macros xla se
rajoute sur ce menu suivant des paramètres en base de registre. Je modifie
les valeurs de la base de registre garce à ma macro principale, mais quand
on y faisait une modif je voulais relancer tous les workbook_Open pour
réinitialiser mes menus sans avoir à redemarrer Excel.

Donc je peux modifier la portée de Workbook_Open en public, c'est bien sympa
! Comment puis-je faire depuis ma macro principale pour relancer tous les
Workbook_Open des macros complémenatires chargées ????

Merci à vous

John


"Michel Gaboly" a écrit dans le message de
news:
Re,

De rien Philippe, vive l'orthodoxie ;-)))


Merci Michel pour toutes ces précisions que j'archive et qui devraient
profiter à John.



Pur ma part, je continuerai de préférence à rester dans l'orthodoxie,
fort bien décrite par GeeDee et


toi même, qui consiste à utiliser la procédure open à l'ouverture et à
ranger ce qui doit servir en


diverses occasions dans une sub de module standard qu'on appelle en tant
que de besoin.


--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Michel Gaboly" a écrit dans le message de
news:
Bonsoir Philippe,

Workbook_Open est une procédure particulière, mais rien n'empêche de
l'appeler:




Dans le module ThisWorkbook, copie cette procédure :

Private Sub Rappel()
Workbook_Open
End Sub

Tu verras qu'elle provoque la réexécution de la procédure
Workbook_Open





Par ailleurs, mais ce n'est pas très orthodoxe, à condition d'enlever
le "Private" présent par défaut



dans
la procédure Workbook_Open, tu peux effectivement l'appeler ailleurs:

Crée un UserForm avec un CommandButton et entre ce code :

Private Sub CommandButton1_Click()
ThisWorkbook.Workbook_Open
End Sub

Là encore, la procédure Workbook_Open est exécutée quand tu cliques
sur le bouton.





Tout ceci n'est effectivement pas orthodoxe, et une meilleure approche
est celle de gee-dee-, qui



consiste
à utiliser une procédure contenant les mêmes instruction que la
procédure Workbook_Open.




Dans ce cas, le plus simple est d'écrire dans un module standard une
procédure "Toto" sans le mot-clef



"Private"

et d'avoir dans ThisWorkbook :

Private Workbook_Open()
Toto
End Sub

et associé au bouton du UserForm :

Private Sub CommandButton1_Click()
Toto
End Sub



Bonsoir John,
Pas sur de bien comprendre ce que tu veux ; Workbook_Open est une
procédure événementielle du




classeur
et elle s'exécute exclusivement à l'occasion de cet évènement ; je
ne vois pas bien comment "la




relancer" si ce n'est en rouvrant le classeur.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"John Fuss" a écrit dans le message de
news:bod6ea$m94$
Bijour à ts,

j'aimerai relancer Workbook_Open depuis une Userform, est-ce
possible ? Sans





relancer la macro ?

Merci d'avance.

John





--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com








Avatar
Alain CROS
Bonjour.

Sans passer tes Workbook_Open en public, a la fin de ta macro principale, tu rajoute ces lignes.

Dim WKAddin As AddIn
For Each WKAddin In AddIns
If WKAddin.Installed = True Then
Application.Run WKAddin.Name & "!" & "ThisWorkbook.Workbook_Open"
End If
Set WKAddin = Nothing
Next

Alain CROS.

"John Fuss" a écrit dans le message de news: bog8as$g47$
Bonjour à tous,

j'ai un pbl avec mon OE, je nbe vois pas le fil de mon message, ni mon
message d'ailleurs, c bizarre. Mais je vais vous expliquer prkoi je voulais
relancer Workbook_Open :

une macro xla me sert de créateur d'un menu Excel , mes autres macros xla se
rajoute sur ce menu suivant des paramètres en base de registre. Je modifie
les valeurs de la base de registre garce à ma macro principale, mais quand
on y faisait une modif je voulais relancer tous les workbook_Open pour
réinitialiser mes menus sans avoir à redemarrer Excel.

Donc je peux modifier la portée de Workbook_Open en public, c'est bien sympa
! Comment puis-je faire depuis ma macro principale pour relancer tous les
Workbook_Open des macros complémenatires chargées ????

Merci à vous

John


Avatar
John Fuss
Exactement ce que je voulais merci !!!!

John

"Alain CROS" a écrit dans le message de
news:
Bonjour.

Sans passer tes Workbook_Open en public, a la fin de ta macro principale,
tu rajoute ces lignes.


Dim WKAddin As AddIn
For Each WKAddin In AddIns
If WKAddin.Installed = True Then
Application.Run WKAddin.Name & "!" & "ThisWorkbook.Workbook_Open"
End If
Set WKAddin = Nothing
Next

Alain CROS.

"John Fuss" a écrit dans le message de news:
bog8as$g47$

Bonjour à tous,

j'ai un pbl avec mon OE, je nbe vois pas le fil de mon message, ni mon
message d'ailleurs, c bizarre. Mais je vais vous expliquer prkoi je
voulais


relancer Workbook_Open :

une macro xla me sert de créateur d'un menu Excel , mes autres macros
xla se


rajoute sur ce menu suivant des paramètres en base de registre. Je
modifie


les valeurs de la base de registre garce à ma macro principale, mais
quand


on y faisait une modif je voulais relancer tous les workbook_Open pour
réinitialiser mes menus sans avoir à redemarrer Excel.

Donc je peux modifier la portée de Workbook_Open en public, c'est bien
sympa


! Comment puis-je faire depuis ma macro principale pour relancer tous
les


Workbook_Open des macros complémenatires chargées ????

Merci à vous

John