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

vba - conflit avec "open" ?

7 réponses
Avatar
j-pascal
Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de lancement
automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open()

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP

7 réponses

Avatar
Daniel.C
Après avoir fait le test (que tu aurais pu faire...), c'est
Workbook_Open qui s'exécute en premier.
Daniel

Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de lancement
automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open()

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP


Avatar
LSteph
Bonjour,

(nota:dans le standard on ne met pas private)

sinon teste tu verras
ils ne seront pas executés simultanément:

Private Sub Workbook_Open()
MsgBox "c'est moi thisworkbook"
End Sub

Sub auto_open()
MsgBox "c'est moi standard"
End Sub

'ensuite désactive les évennements et refais l'expérience

la différence amha, auto_open est détecté par l'application suite à
l'ouverture d'un classeur indépendamment des evennements.

Workbook_open est un évennement de niveau classeur qui réagit à
l'ouverture de celui-ci.

--
lSteph

j-pascal a écrit :
Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de lancement
automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open() '

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP




Avatar
j-pascal
Bonsoir Stéphane,

Merci pour ces précisions.
J'utilise (parfois) un "Private" dans le module standard pour que la
macro ne soit pas accessible depuis "Barre d'Outils / Exécutez une
macro" ... Par ailleurs, le fait que ça soit dans le standard met-il à
l'abri d'un lancement intempestif par un autre classeur ayant un nom de
macro similaire ? J'imaginerais même volontiers qu'un code à
l'intérieur d'un module de feuille est plus "protégé" qu'à l'intérieur
d'un module standard ?!

JP

Bonjour,

(nota:dans le standard on ne met pas private)

sinon teste tu verras
ils ne seront pas executés simultanément:

Private Sub Workbook_Open()
MsgBox "c'est moi thisworkbook"
End Sub

Sub auto_open()
MsgBox "c'est moi standard"
End Sub

'ensuite désactive les évennements et refais l'expérience

la différence amha, auto_open est détecté par l'application suite à
l'ouverture d'un classeur indépendamment des evennements.

Workbook_open est un évennement de niveau classeur qui réagit à l'ouverture
de celui-ci.

--
lSteph

j-pascal a écrit :
Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de lancement
automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open() '

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP






Avatar
LSteph
Oui possible mais c'est juste par principe et c'est dans l'autre sens
que c'est embêtant sinon tu as aussi
Option private module qui va planquer toutes les sub
on ne les voit plus depuis menu macro (mais si tu connais les noms tu
peuxx qd même les executer)



j-pascal a écrit :
Bonsoir Stéphane,

Merci pour ces précisions.
J'utilise (parfois) un "Private" dans le module standard pour que la
macro ne soit pas accessible depuis "Barre d'Outils / Exécutez une
macro" ... Par ailleurs, le fait que ça soit dans le standard met-il à
l'abri d'un lancement intempestif par un autre classeur ayant un nom de
macro similaire ? J'imaginerais même volontiers qu'un code à l'intérieur
d'un module de feuille est plus "protégé" qu'à l'intérieur d'un module
standard ?!

JP

Bonjour,

(nota:dans le standard on ne met pas private)

sinon teste tu verras
ils ne seront pas executés simultanément:

Private Sub Workbook_Open()
MsgBox "c'est moi thisworkbook"
End Sub

Sub auto_open()
MsgBox "c'est moi standard"
End Sub

'ensuite désactive les évennements et refais l'expérience

la différence amha, auto_open est détecté par l'application suite à
l'ouverture d'un classeur indépendamment des evennements.

Workbook_open est un évennement de niveau classeur qui réagit à
l'ouverture de celui-ci.

--
lSteph

j-pascal a écrit :
Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de
lancement automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open() '

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP










Avatar
j-pascal
Bonsoir Stéphane,

Merci.
Je ne suis pas sûr d'avoir compris comment on pouvait "privatiser" le
module en entier ...

@+
JP

Oui possible mais c'est juste par principe et c'est dans l'autre sens que
c'est embêtant sinon tu as aussi
Option private module qui va planquer toutes les sub
on ne les voit plus depuis menu macro (mais si tu connais les noms tu peuxx
qd même les executer)



j-pascal a écrit :
Bonsoir Stéphane,

Merci pour ces précisions.
J'utilise (parfois) un "Private" dans le module standard pour que la macro
ne soit pas accessible depuis "Barre d'Outils / Exécutez une macro" ... Par
ailleurs, le fait que ça soit dans le standard met-il à l'abri d'un
lancement intempestif par un autre classeur ayant un nom de macro similaire
? J'imaginerais même volontiers qu'un code à l'intérieur d'un module de
feuille est plus "protégé" qu'à l'intérieur d'un module standard ?!

JP

Bonjour,

(nota:dans le standard on ne met pas private)

sinon teste tu verras
ils ne seront pas executés simultanément:

Private Sub Workbook_Open()
MsgBox "c'est moi thisworkbook"
End Sub

Sub auto_open()
MsgBox "c'est moi standard"
End Sub

'ensuite désactive les évennements et refais l'expérience

la différence amha, auto_open est détecté par l'application suite à
l'ouverture d'un classeur indépendamment des evennements.

Workbook_open est un évennement de niveau classeur qui réagit à
l'ouverture de celui-ci.

-- lSteph

j-pascal a écrit :
Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de lancement
automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open() '

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP












Avatar
LSteph
Bosoir, Jp
Tout en haut de ton module tu mets ceci:

Option private module

Cordialement.

--
lSteph

j-pascal a écrit :
Bonsoir Stéphane,

Merci.
Je ne suis pas sûr d'avoir compris comment on pouvait "privatiser" le
module en entier ...

@+
JP

Oui possible mais c'est juste par principe et c'est dans l'autre sens
que c'est embêtant sinon tu as aussi
Option private module qui va planquer toutes les sub
on ne les voit plus depuis menu macro (mais si tu connais les noms tu
peuxx qd même les executer)



j-pascal a écrit :
Bonsoir Stéphane,

Merci pour ces précisions.
J'utilise (parfois) un "Private" dans le module standard pour que la
macro ne soit pas accessible depuis "Barre d'Outils / Exécutez une
macro" ... Par ailleurs, le fait que ça soit dans le standard met-il
à l'abri d'un lancement intempestif par un autre classeur ayant un
nom de macro similaire ? J'imaginerais même volontiers qu'un code à
l'intérieur d'un module de feuille est plus "protégé" qu'à
l'intérieur d'un module standard ?!

JP

Bonjour,

(nota:dans le standard on ne met pas private)

sinon teste tu verras
ils ne seront pas executés simultanément:

Private Sub Workbook_Open()
MsgBox "c'est moi thisworkbook"
End Sub

Sub auto_open()
MsgBox "c'est moi standard"
End Sub

'ensuite désactive les évennements et refais l'expérience

la différence amha, auto_open est détecté par l'application suite à
l'ouverture d'un classeur indépendamment des evennements.

Workbook_open est un évennement de niveau classeur qui réagit à
l'ouverture de celui-ci.

-- lSteph

j-pascal a écrit :
Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de
lancement automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open() '

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP
















Avatar
j-pascal
Bonsoir Stéphane,

Merci.

JP

Bosoir, Jp
Tout en haut de ton module tu mets ceci:

Option private module

Cordialement.

--
lSteph

j-pascal a écrit :
Bonsoir Stéphane,

Merci.
Je ne suis pas sûr d'avoir compris comment on pouvait "privatiser" le
module en entier ...

@+
JP

Oui possible mais c'est juste par principe et c'est dans l'autre sens que
c'est embêtant sinon tu as aussi
Option private module qui va planquer toutes les sub
on ne les voit plus depuis menu macro (mais si tu connais les noms tu
peuxx qd même les executer)



j-pascal a écrit :
Bonsoir Stéphane,

Merci pour ces précisions.
J'utilise (parfois) un "Private" dans le module standard pour que la
macro ne soit pas accessible depuis "Barre d'Outils / Exécutez une macro"
... Par ailleurs, le fait que ça soit dans le standard met-il à l'abri
d'un lancement intempestif par un autre classeur ayant un nom de macro
similaire ? J'imaginerais même volontiers qu'un code à l'intérieur d'un
module de feuille est plus "protégé" qu'à l'intérieur d'un module
standard ?!

JP

Bonjour,

(nota:dans le standard on ne met pas private)

sinon teste tu verras
ils ne seront pas executés simultanément:

Private Sub Workbook_Open()
MsgBox "c'est moi thisworkbook"
End Sub

Sub auto_open()
MsgBox "c'est moi standard"
End Sub

'ensuite désactive les évennements et refais l'expérience

la différence amha, auto_open est détecté par l'application suite à
l'ouverture d'un classeur indépendamment des evennements.

Workbook_open est un évennement de niveau classeur qui réagit à
l'ouverture de celui-ci.

-- lSteph

j-pascal a écrit :
Bonjour,

Que se passe-t-il si on utilise simultanément deux "modes" de lancement
automatique à l'ouverture d'un classeur ?

Soit :

Dans ThisWorkbook : Private Sub Workbook_Open()
+
Dans un module standard : Private Sub auto_open() '

Y a-t-il une préséance de l'un sur l'autre ?

Merci pour vos lumières.

JP