Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" <jlcapel@ifth.org> a écrit dans le message de news:
ubGW7rSBFHA.2316@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+
Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" <jlcapel@ifth.org> a écrit dans le message de news:
ubGW7rSBFHA.2316@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
NB - Déjà posté à 14h09 (heure de Paris), mais le sujet avait disparu ;-((
Bonjour,
Pounet95 t'a déjà répondu, mais je n'ai pas compris la même chose que lui.
Si tu veux une procédure qui se lance à l'ouverture d'un classeur
quelconque, pas seulement celui qui contient le code, il faut utiliser un
événement de niveau application.
Pour ce faire, il faut créer un module de classe, nommé par exemple
"ClasseAppli" où on définit la classe "Xl" comme application :
Option Explicit
Public WithEvents Xl As Application
Une fois que c'est fait, "Xl" apparaît dans le menu déroulant d gauche du
module de classe.
Si on le sélectionne, le menu déroulant de droite du module, donne accès à
tous les événements de niveau application. Il faut utiliser ici
"WorkbookOpen" :
Private Sub Xl_WorkbookOpen(ByVal Wb As Workbook)
MsgBox Wb.Name ' A la place, ton code
End Sub
Pour que les événements de niveau application soient efectivements
disponibles, une initialisation doit être faite ainsi, dans un module
quelconque :
Sub InitAppli
Set App.Xl = Application
End Sub
En haut de ce module, une déclaration est nécessaire pour faire la liaison
entre la procédure d'initialisation et le module de classe contenant le
code associé aux événements de niveau appli :
Option Explicit
Dim App As New ClasseAppli ' doit correspondre précisément au nom donné au
module de classe.
Ces événements de niveau appli ne sont disponibles qu'après que la Sub
provoquant l'initialisation (ici InitAppli) ait été lancé.
Pour que le lancement soit automatique, place la déclaration et
l'initialisation dans le module ThisWorkbook, dans le code associé à
l'ouverture du classeur :
Option Explicit
Dim App As New ClasseAppli
Sub Workbook_Open()
Set App.Xl = Application
End Sub
Pour que cela fonctionne en permanence, il faut mettre ce code dans un
classeur ouvert systématiquement quand Excel est lancé, par exemple
Pesrso.xls, sous Windows.
Voilà ;-))Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance
à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
NB - Déjà posté à 14h09 (heure de Paris), mais le sujet avait disparu ;-((
Bonjour,
Pounet95 t'a déjà répondu, mais je n'ai pas compris la même chose que lui.
Si tu veux une procédure qui se lance à l'ouverture d'un classeur
quelconque, pas seulement celui qui contient le code, il faut utiliser un
événement de niveau application.
Pour ce faire, il faut créer un module de classe, nommé par exemple
"ClasseAppli" où on définit la classe "Xl" comme application :
Option Explicit
Public WithEvents Xl As Application
Une fois que c'est fait, "Xl" apparaît dans le menu déroulant d gauche du
module de classe.
Si on le sélectionne, le menu déroulant de droite du module, donne accès à
tous les événements de niveau application. Il faut utiliser ici
"WorkbookOpen" :
Private Sub Xl_WorkbookOpen(ByVal Wb As Workbook)
MsgBox Wb.Name ' A la place, ton code
End Sub
Pour que les événements de niveau application soient efectivements
disponibles, une initialisation doit être faite ainsi, dans un module
quelconque :
Sub InitAppli
Set App.Xl = Application
End Sub
En haut de ce module, une déclaration est nécessaire pour faire la liaison
entre la procédure d'initialisation et le module de classe contenant le
code associé aux événements de niveau appli :
Option Explicit
Dim App As New ClasseAppli ' doit correspondre précisément au nom donné au
module de classe.
Ces événements de niveau appli ne sont disponibles qu'après que la Sub
provoquant l'initialisation (ici InitAppli) ait été lancé.
Pour que le lancement soit automatique, place la déclaration et
l'initialisation dans le module ThisWorkbook, dans le code associé à
l'ouverture du classeur :
Option Explicit
Dim App As New ClasseAppli
Sub Workbook_Open()
Set App.Xl = Application
End Sub
Pour que cela fonctionne en permanence, il faut mettre ce code dans un
classeur ouvert systématiquement quand Excel est lancé, par exemple
Pesrso.xls, sous Windows.
Voilà ;-))
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance
à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
NB - Déjà posté à 14h09 (heure de Paris), mais le sujet avait disparu ;-((
Bonjour,
Pounet95 t'a déjà répondu, mais je n'ai pas compris la même chose que lui.
Si tu veux une procédure qui se lance à l'ouverture d'un classeur
quelconque, pas seulement celui qui contient le code, il faut utiliser un
événement de niveau application.
Pour ce faire, il faut créer un module de classe, nommé par exemple
"ClasseAppli" où on définit la classe "Xl" comme application :
Option Explicit
Public WithEvents Xl As Application
Une fois que c'est fait, "Xl" apparaît dans le menu déroulant d gauche du
module de classe.
Si on le sélectionne, le menu déroulant de droite du module, donne accès à
tous les événements de niveau application. Il faut utiliser ici
"WorkbookOpen" :
Private Sub Xl_WorkbookOpen(ByVal Wb As Workbook)
MsgBox Wb.Name ' A la place, ton code
End Sub
Pour que les événements de niveau application soient efectivements
disponibles, une initialisation doit être faite ainsi, dans un module
quelconque :
Sub InitAppli
Set App.Xl = Application
End Sub
En haut de ce module, une déclaration est nécessaire pour faire la liaison
entre la procédure d'initialisation et le module de classe contenant le
code associé aux événements de niveau appli :
Option Explicit
Dim App As New ClasseAppli ' doit correspondre précisément au nom donné au
module de classe.
Ces événements de niveau appli ne sont disponibles qu'après que la Sub
provoquant l'initialisation (ici InitAppli) ait été lancé.
Pour que le lancement soit automatique, place la déclaration et
l'initialisation dans le module ThisWorkbook, dans le code associé à
l'ouverture du classeur :
Option Explicit
Dim App As New ClasseAppli
Sub Workbook_Open()
Set App.Xl = Application
End Sub
Pour que cela fonctionne en permanence, il faut mettre ce code dans un
classeur ouvert systématiquement quand Excel est lancé, par exemple
Pesrso.xls, sous Windows.
Voilà ;-))Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance
à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
Salut Michel, salut Anonymous
Effectivement, je ne l'avais pas vu comme cela. :o(((
Je pense que vous avez raison et que ce sera confirmé par le demandeur
bientôt.
Au plaisir
Salut Michel, salut Anonymous
Effectivement, je ne l'avais pas vu comme cela. :o(((
Je pense que vous avez raison et que ce sera confirmé par le demandeur
bientôt.
Au plaisir
Salut Michel, salut Anonymous
Effectivement, je ne l'avais pas vu comme cela. :o(((
Je pense que vous avez raison et que ce sera confirmé par le demandeur
bientôt.
Au plaisir
Bonjour anomymousA
Apparemmment nous sommes sur la même longueur d'onde : nous avons
répondu la même chose à la minute près ;-))bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour anomymousA
Apparemmment nous sommes sur la même longueur d'onde : nous avons
répondu la même chose à la minute près ;-))
bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+
Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" <jlcapel@ifth.org> a écrit dans le message de news:
ubGW7rSBFHA.2316@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour anomymousA
Apparemmment nous sommes sur la même longueur d'onde : nous avons
répondu la même chose à la minute près ;-))bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
;-))Salut Michel, salut Anonymous
Effectivement, je ne l'avais pas vu comme cela. :o(((
Je pense que vous avez raison et que ce sera confirmé par le demandeur
bientôt.
Au plaisir
--
Cordialement,
Michel Gaboly
www.gaboly.com
;-))
Salut Michel, salut Anonymous
Effectivement, je ne l'avais pas vu comme cela. :o(((
Je pense que vous avez raison et que ce sera confirmé par le demandeur
bientôt.
Au plaisir
--
Cordialement,
Michel Gaboly
www.gaboly.com
;-))Salut Michel, salut Anonymous
Effectivement, je ne l'avais pas vu comme cela. :o(((
Je pense que vous avez raison et que ce sera confirmé par le demandeur
bientôt.
Au plaisir
--
Cordialement,
Michel Gaboly
www.gaboly.com
bonjour Michel,
étonnant, non ?.
CordialementBonjour anomymousA
Apparemmment nous sommes sur la même longueur d'onde : nous avons
répondu la même chose à la minute près ;-))bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
bonjour Michel,
étonnant, non ?.
Cordialement
Bonjour anomymousA
Apparemmment nous sommes sur la même longueur d'onde : nous avons
répondu la même chose à la minute près ;-))
bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+
Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" <jlcapel@ifth.org> a écrit dans le message de news:
ubGW7rSBFHA.2316@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com
bonjour Michel,
étonnant, non ?.
CordialementBonjour anomymousA
Apparemmment nous sommes sur la même longueur d'onde : nous avons
répondu la même chose à la minute près ;-))bonjour,
je ne suis pas sur que ce soit exactement la question de notre ami. Si je
comprends bien, il souhaite q'une procédure de son classeur se déclenche
chaque fois q'un autre classeur s'ouvre.
Les évenements gérés par thisworkbook ne peuvent détecter pas l'ouverture
d'un autre classeur stricto sensu. Pour y arriver , on peut faire appele à
l'evenement windowDeactivate car à l'ouverture d'un autre classeur, le
classeur contenant l'evenement windowDeactivate , pour peu qu'il était
actif, perd le focus.
On peut cependant mieux faire .
il faut déclarer un objet de type application dans un module de classe
Donc il faut déclarer dans ce classeur un module de classe appelé mettons
AppClassEvents
puis écrire la procédure suivante dans celui-ci
Public WithEvents Appl As Application
Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook)
'ici mettre la procédure qu'on veut exécuter à l'ouverture d'un classeur. Il
est possible de ne la faire exécuter que par des classeurs spécifiques en
faisant une discrimination sur leurs noms ou autres. Pour cela utiliser les
propriétés de workbook en utilisant l'identifiant du classeur qui s'ouvre,
ici wb.
End Sub
Dans le module Thisworkbook du classeur contenant le module de classe, écrire,
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open()
Set ApplicationClass.Appl = Application
End Sub
Et evidemment ouvrir le classeur contenant le module de classe.
Désormais, l'objet Aplication pointe sur ApplicationClass. Donc à
l'ouverture du classeur , la veille du module de classe sera déclenchée et
donc tous les futurs classeurs qui s'ouvriront feront l'objet d'un traitement
selon Private Sub Appl_WorkbookOpen(ByVal Wb As Workbook).
A+Bonjour,
Mettre l'appel à la procédure ( ou aux procédures ) dans l'évènement
Workbook_Open de ThisWorkbook.
Pour atteindre ce module,ALT+F11 ouvre l'éditeur VBE
Si la fenêtre VBA Project n'est pas ouverte, faire CTRL+R
Double-clic sur le module Thisworkbook et dans la liste déroulante de gauche
sélectionner Workbook
Par défaut, l'évènement s'affiche et il n'y a plus qu'à y mettre les appels
aux procs
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Jean-Luc CAPEL" a écrit dans le message de news:Bonjour à tous,
comment déclarer une proc dans un classeur de macros Excel, qui se lance à
toute ouverture de classeurs.
D'avance merci
JLuc
--
Cordialement,
Michel Gaboly
www.gaboly.com