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

Existe-il un évènement workbook open ?

12 réponses
Avatar
Bartez63
bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur qui
indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait accessible à
partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez

10 réponses

1 2
Avatar
Ardus Petus
C'est plus compliqué que pour Workbook_Open:
Il faut créer un module de classe avec un membre déclaré
Dim with Events oApp as Application

Correctement initialisé, ce module gère les évènements que tu souhaites.

Si ça t'intéresse, je peux te transmettre un classeur exemple.

Cordialement,
--
AP


"Bartez63" a écrit dans le message de news:

bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait accessible
à partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez



Avatar
lSteph
Bonsoir,
Tu peux mettre cela dans ton classeur ou dans perso.xls ex qd un classeur
est ouvert on affiche un message
Il ne s'agit donc plus du niveau classeur mais du niveau application.

Il te faut

un module de classe.

Fenêtre propriétés le nommer MyAppClass


'''''****dans MyAppClass****
Public WithEvents XLEvents As Application

Private Sub XLEvents_WorkbookOpen(ByVal MyWb As Excel.Workbook)

MsgBox "Un classeur vient d'être ouvert"

End Sub

'''''****dans le thisworkbook de perso ou de ton premier classeur****
Private Sub Workbook_Open()
Call startit
End Sub

'''''****dans le module standard du même classeur****
Dim oApp As New MyAppClass

Sub startit()
Set oApp.XLEvents = Application
End Sub



'lSteph



"Bartez63" a écrit dans le message de news:

bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait accessible
à partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez



Avatar
ABED HADDOU
Bonjour * Bartez63 *
si j'ai bien compris ta question ,je pense que c'est possible si tu connais
le nom du deuxieme fichier ,avec quelque chose du genre
tu inscris dans l'evenement du fichier 1 ceci
Private Sub Workbook_Open()
On Error Resume Next
Workbooks("Fichier2").Close
If Err <> 0 Then
Traitements
endif
end sub

Cordialement.
Abed_H



bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur qui
indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait accessible à
partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez





Avatar
Pierre Fauconnier
Bonsoir

A la différence de mes petits camarades, je n'utilise pas de module de
classe.

Je déclare
Public WithEvents App as Application
en début du module ThisWorkbook, et je peux gérer les évènements de
l'application dans ledit module...

Ok?

--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Bartez63" a écrit dans le message de news:

bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait accessible
à partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez



Avatar
Bartez63
Oui je veux bien un classeur exemple pour me faire une idée plus précise :)
j'ai déjà du mal avec les macro et fonction simple alors les modules de
classe pour moi c'est de l'hébreux !

Merci de ton aide
Bartez

"Ardus Petus" a écrit dans le message de news:

C'est plus compliqué que pour Workbook_Open:
Il faut créer un module de classe avec un membre déclaré
Dim with Events oApp as Application

Correctement initialisé, ce module gère les évènements que tu souhaites.

Si ça t'intéresse, je peux te transmettre un classeur exemple.

Cordialement,
--
AP


"Bartez63" a écrit dans le message de news:

bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait
accessible à partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez







Avatar
Bartez63
Merci pour ton aide et ton exemple
Pour le moment j'ai essayé de tester ton code (sans connaitre les modules de
classe) et j'ai cette erreur :
Type défini par l'utilisateur non défini

Le débogueur bloqué sur cette ligne :
Dim oApp As New MyAppClass

@+
Bartez


"lSteph" a écrit dans le message de news:
%
Bonsoir,
Tu peux mettre cela dans ton classeur ou dans perso.xls ex qd un classeur
est ouvert on affiche un message
Il ne s'agit donc plus du niveau classeur mais du niveau application.

Il te faut

un module de classe.

Fenêtre propriétés le nommer MyAppClass


'''''****dans MyAppClass****
Public WithEvents XLEvents As Application

Private Sub XLEvents_WorkbookOpen(ByVal MyWb As Excel.Workbook)

MsgBox "Un classeur vient d'être ouvert"

End Sub

'''''****dans le thisworkbook de perso ou de ton premier classeur****
Private Sub Workbook_Open()
Call startit
End Sub

'''''****dans le module standard du même classeur****
Dim oApp As New MyAppClass

Sub startit()
Set oApp.XLEvents = Application
End Sub



'lSteph



"Bartez63" a écrit dans le message de news:

bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait
accessible à partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez







Avatar
Bartez63
Salut ABED HADDOU,

Merci de ta proposition, mais je ne connais pas dutout le nom des classeurs
qui peuvent être ouvert.

Bonne soirée,
Bartez

"ABED HADDOU" a écrit dans le message
de news:
Bonjour * Bartez63 *
si j'ai bien compris ta question ,je pense que c'est possible si tu
connais
le nom du deuxieme fichier ,avec quelque chose du genre
tu inscris dans l'evenement du fichier 1 ceci
Private Sub Workbook_Open()
On Error Resume Next
Workbooks("Fichier2").Close
If Err <> 0 Then
Traitements
endif
end sub

Cordialement.
Abed_H



bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui
indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait
accessible à
partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez







Avatar
Ardus Petus
Le fichier joint: http://cjoint.com/?gwuT0eegvY offre l'infrastructure.
Reste à l'adapter à tes besoins.

Cordialement
--
AP
Avatar
Bartez63
Merci pour ton idée, mais peux-tu m'en dire un peut plus sur ta façon de
faire ? ou me donner un petit exemple du fonctionnement ?

Je ne suis pas très doué dès que ça sort des macros standards :)

@+
Bartez


"Pierre Fauconnier" a écrit dans le
message de news:
Bonsoir

A la différence de mes petits camarades, je n'utilise pas de module de
classe.

Je déclare
Public WithEvents App as Application
en début du module ThisWorkbook, et je peux gérer les évènements de
l'application dans ledit module...

Ok?

--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Bartez63" a écrit dans le message de news:

bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait
accessible à partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez







Avatar
Bartez63
Merci pour ton aide et ton exemple
Pour le moment j'ai essayé de tester ton code (sans connaitre les modules de
classe) et j'ai cette erreur :
Type défini par l'utilisateur non défini

Le débogueur bloqué sur cette ligne :
Dim oApp As New MyAppClass

@+
Bartez


"lSteph" a écrit dans le message de news:
%
Bonsoir,
Tu peux mettre cela dans ton classeur ou dans perso.xls ex qd un classeur
est ouvert on affiche un message
Il ne s'agit donc plus du niveau classeur mais du niveau application.

Il te faut

un module de classe.

Fenêtre propriétés le nommer MyAppClass


'''''****dans MyAppClass****
Public WithEvents XLEvents As Application

Private Sub XLEvents_WorkbookOpen(ByVal MyWb As Excel.Workbook)

MsgBox "Un classeur vient d'être ouvert"

End Sub

'''''****dans le thisworkbook de perso ou de ton premier classeur****
Private Sub Workbook_Open()
Call startit
End Sub

'''''****dans le module standard du même classeur****
Dim oApp As New MyAppClass

Sub startit()
Set oApp.XLEvents = Application
End Sub



'lSteph



"Bartez63" a écrit dans le message de news:

bonjour,

Je me demandais s'il existait un évènement récupérable dans un classeur
qui indique qu'un autre classeur vient d'être ouvert ?

Houlala ... c'est pas très claire mon truc :)

Est-ce qu'il existe une macro qui peut détecter l'ouverture d'un 2em
classeur ou d'un 3em façon "Workbook_Open" mais dans qui serait
accessible à partir du 1er classeur ouvert ?

Francement, si quelqu'un comprend ce que je veux...Chapeau ! partce, même
moi j'arrive pas à expliquer ce que j'ai besoin.

Merci quand même de votre aide pour ceux qui ont déjà lut ça !

@+
Bartez







1 2