OVH Cloud OVH Cloud

Notions de module

13 réponses
Avatar
Yvan
Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans le
même module. Si oui, quelles peuvent être les incidences qu'elles soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.

10 réponses

1 2
Avatar
Joël GARBE
Bonjour Yvan,

Tu peux gérer les modules comme bon te semble, de façon à "catégoriser" les
différentes macros de ton classeur...

Un module pour les tests,

un module pour les fonctions

etc...

En revanche, la déclaration des variables peut avoir une influence...

Dim Var en haut de module, la Var ne sera valable que dans ce module (il ne
sera pas possible de la réutiliser dans un autre module sans la
redéclarer...)

Bon week-end

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Yvan" a écrit dans le message de news:

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros
appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans le
même module. Si oui, quelles peuvent être les incidences qu'elles soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.


Avatar
Yvan
Bonjour Joël,

Merci pour ta réponse.

Précisément, si une macro appelante appelle plusieurs macros en cascade,
existe-t-il un risque pour qu'une macro ne s'exécute pas si elle ne fait pas
partie du module des précédentes ???

A plus,


Bonjour Yvan,

Tu peux gérer les modules comme bon te semble, de façon à "catégoriser" les
différentes macros de ton classeur...

Un module pour les tests,

un module pour les fonctions

etc...

En revanche, la déclaration des variables peut avoir une influence...

Dim Var en haut de module, la Var ne sera valable que dans ce module (il ne
sera pas possible de la réutiliser dans un autre module sans la
redéclarer...)

Bon week-end

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Yvan" a écrit dans le message de news:

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros
appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans le
même module. Si oui, quelles peuvent être les incidences qu'elles soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.







Avatar
Philippe.R
Bonjour Yvan,
Il existe plusieurs types de modules.
Celui dans lequel l'enregistreur de macros range les procédures que tu lui dictes est appelé module
standard il peut recevoir, outre les procédures, les fonctions personnalisées.
Il existe aussi les modules de feuille, qui ne peuvent pas accueillir de fonction et qui peuvent en
revanche abriter des procédures événementielles de feuille (change, sélection_change...) ou encore un
module propre au classeur : Thisworkbook() qui abrite les procédures événementielles du classeur (Open,
Beforesave....)
Il existe enfin les modules de classe qui permettent de gérer des objets en leur attribuant des
propriétés.

Les procédures peuvent être appelées indifféremment d'un module à l'autre, avec pour restriction que les
variables doivent être déclarées publiques (public maVar as ...) pour être utilisables dans tout le
classeur.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans le
même module. Si oui, quelles peuvent être les incidences qu'elles soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.


Avatar
Joël GARBE
Re ;-)

La réponse de Philippe est parfaitement claire.. je n'ai rien à y ajouter
;-)

Bon week-end ...
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Yvan" a écrit dans le message de news:

Bonjour Joël,

Merci pour ta réponse.

Précisément, si une macro appelante appelle plusieurs macros en cascade,
existe-t-il un risque pour qu'une macro ne s'exécute pas si elle ne fait
pas
partie du module des précédentes ???

A plus,


Bonjour Yvan,

Tu peux gérer les modules comme bon te semble, de façon à "catégoriser"
les
différentes macros de ton classeur...

Un module pour les tests,

un module pour les fonctions

etc...

En revanche, la déclaration des variables peut avoir une influence...

Dim Var en haut de module, la Var ne sera valable que dans ce module (il
ne
sera pas possible de la réutiliser dans un autre module sans la
redéclarer...)

Bon week-end

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Yvan" a écrit dans le message de news:

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros
appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans
le
même module. Si oui, quelles peuvent être les incidences qu'elles
soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.









Avatar
Jacky
Bonjour Yvan

Un petit exemple pour t'en convaincre.

En partant d'une feuille vierge Alt+F11
Menu insertion clique 3 fois sur module

Dans le module 1 copie ceci:
Public nom 'déclaration de la variable 'nom'
Sub test1()
nom = "Yvan" 'ici je mets dans la variable nom, Yvan
MsgBox "Je suis dans le module 1"
test2 'ici je lance la macro qui a pour nom test2 et qui se trouve
dans le module 2
End Sub

Dans le module 2 copie ceci:
Sub test2()
MsgBox "Bonjour " & nom & ", il est " & Time & Chr$(10) & "et je suis dans
le module 2"
test3 ' appelle de la macro qui pour nom test 3 et qui se trouve dans le
module 3
End Sub

Dans le module 3 copie ceci:
Sub test3()
MsgBox "J'ai gardé ton nom '" & nom & "' en mémoire dans chaque module" &
Chr$(10) & "Je suis dans le module 3"
End Sub

Tu lances la macro test1 du module 1.(F5)
Tu peux mettre ces 3 macros dans un seul module est tu obtiendras le même
résultat.
A chaque fois que tu te sers de l'enregistreur de macro, il t'ouvre un
nouveau module automatiquement.
A toi de voir si tu laisses le code dans ce module ou tu les rassembles
dans un seul.

Bon courage
JJ
Avatar
Yvan
Salut Philippe,

Merci pour tes réponses. Mais je ne trouve toujours pas la solution à mon
problème. Si tu as le courage de te pencher sur mes macros, peux-tu
m'expliquer pourquoi mon traitement s'arrête systématiquement avant que la
macro "Clôture" ne soit exécutée.

Voici la macro appelante :

Sub Macro2()

' Lancement du traitement des fichiers de CA

Application.Run "'Lancement.xls'!CA"

' Lancement de la suppression des fichiers requis et fermeture du fichier

Application.Run "'Lancement.xls'!Clôture"

' Fermeture de l'Applicatif

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Les macros appelées sont les suivantes :

Macro "CA" :

Sub CA()

' Macro enregistrée le 20/09/2004 par INTERSPORT FRANCE S.A.

' Copie du fichier Achve20.xls

FileCopy "I:DEPARTCENTRALEACHVE20.XLS",
"Gestion2cProfessionnelBases de donnéesExtractionsCA.xls"

' Ouverture du fichier Traitement des Extractions

ChDir "Gestion2cProfessionnelBases de donnéesExtractions"
Workbooks.Open Filename:= _
"Gestion2cProfessionnelBases de donnéesExtractionsTraitements
Quotidiens.xls"
Application.Run "'Traitements Quotidiens.xls'!Chiffres"

End Sub

Macro "Clôture" :

Sub Clôture()

' Macro enregistrée le 23/09/2004 par SPORT LEADER

Kill "Gestion2CProfessionnelBases de donnéesExtractionsGlisse.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsSportswear.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsMultisport.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsChaussures.xls"
Kill "Gestion2CProfessionnelBases de donnéesExtractionsCA.xls"
Kill "I:DEPARTCENTRALEACHVE16.XLS"
Kill "I:DEPARTCENTRALEACHVE17.XLS"
Kill "I:DEPARTCENTRALEACHVE18.XLS"
Kill "I:DEPARTCENTRALEACHVE19.XLS"
Kill "I:DEPARTCENTRALEACHVE20.XLS"

End Sub

C'est donc cette dernière macro qui n'est jamais exécutée. Identifies-tu un
problème ???
Est-ce que cela peut venir de la macro "Chiffres" lancée par la macro "CA" ???

Merci d'avance,

Yvan.


Bonjour Yvan,
Il existe plusieurs types de modules.
Celui dans lequel l'enregistreur de macros range les procédures que tu lui dictes est appelé module
standard il peut recevoir, outre les procédures, les fonctions personnalisées.
Il existe aussi les modules de feuille, qui ne peuvent pas accueillir de fonction et qui peuvent en
revanche abriter des procédures événementielles de feuille (change, sélection_change...) ou encore un
module propre au classeur : Thisworkbook() qui abrite les procédures événementielles du classeur (Open,
Beforesave....)
Il existe enfin les modules de classe qui permettent de gérer des objets en leur attribuant des
propriétés.

Les procédures peuvent être appelées indifféremment d'un module à l'autre, avec pour restriction que les
variables doivent être déclarées publiques (public maVar as ...) pour être utilisables dans tout le
classeur.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans le
même module. Si oui, quelles peuvent être les incidences qu'elles soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.







Avatar
Philippe.R
Re,
De ce que je vois, comprends que tu lances depuis un classeur donné des macros qui sont dans d'autres
classeurs comme Lancement.xls ou Traitements Quotidiens.xls et il me semble qu'il y a là le risque pour
le classeur initial de perdre la main.
Il serait plus simple que l'ensemble des macros nécessaires soient regroupées dans un même classeur, sur
plusieurs modules éventuellement
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Salut Philippe,

Merci pour tes réponses. Mais je ne trouve toujours pas la solution à mon
problème. Si tu as le courage de te pencher sur mes macros, peux-tu
m'expliquer pourquoi mon traitement s'arrête systématiquement avant que la
macro "Clôture" ne soit exécutée.

Voici la macro appelante :

Sub Macro2()

' Lancement du traitement des fichiers de CA

Application.Run "'Lancement.xls'!CA"

' Lancement de la suppression des fichiers requis et fermeture du fichier

Application.Run "'Lancement.xls'!Clôture"

' Fermeture de l'Applicatif

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Les macros appelées sont les suivantes :

Macro "CA" :

Sub CA()

' Macro enregistrée le 20/09/2004 par INTERSPORT FRANCE S.A.

' Copie du fichier Achve20.xls

FileCopy "I:DEPARTCENTRALEACHVE20.XLS",
"Gestion2cProfessionnelBases de donnéesExtractionsCA.xls"

' Ouverture du fichier Traitement des Extractions

ChDir "Gestion2cProfessionnelBases de donnéesExtractions"
Workbooks.Open Filename:= _
"Gestion2cProfessionnelBases de donnéesExtractionsTraitements
Quotidiens.xls"
Application.Run "'Traitements Quotidiens.xls'!Chiffres"

End Sub

Macro "Clôture" :

Sub Clôture()

' Macro enregistrée le 23/09/2004 par SPORT LEADER

Kill "Gestion2CProfessionnelBases de donnéesExtractionsGlisse.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsSportswear.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsMultisport.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsChaussures.xls"
Kill "Gestion2CProfessionnelBases de donnéesExtractionsCA.xls"
Kill "I:DEPARTCENTRALEACHVE16.XLS"
Kill "I:DEPARTCENTRALEACHVE17.XLS"
Kill "I:DEPARTCENTRALEACHVE18.XLS"
Kill "I:DEPARTCENTRALEACHVE19.XLS"
Kill "I:DEPARTCENTRALEACHVE20.XLS"

End Sub

C'est donc cette dernière macro qui n'est jamais exécutée. Identifies-tu un
problème ???
Est-ce que cela peut venir de la macro "Chiffres" lancée par la macro "CA" ???

Merci d'avance,

Yvan.


Bonjour Yvan,
Il existe plusieurs types de modules.
Celui dans lequel l'enregistreur de macros range les procédures que tu lui dictes est appelé module
standard il peut recevoir, outre les procédures, les fonctions personnalisées.
Il existe aussi les modules de feuille, qui ne peuvent pas accueillir de fonction et qui peuvent en
revanche abriter des procédures événementielles de feuille (change, sélection_change...) ou encore un
module propre au classeur : Thisworkbook() qui abrite les procédures événementielles du classeur
(Open,
Beforesave....)
Il existe enfin les modules de classe qui permettent de gérer des objets en leur attribuant des
propriétés.

Les procédures peuvent être appelées indifféremment d'un module à l'autre, avec pour restriction que
les
variables doivent être déclarées publiques (public maVar as ...) pour être utilisables dans tout le
classeur.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans le
même module. Si oui, quelles peuvent être les incidences qu'elles soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.









Avatar
Claude Trouet
Bonsoir,
une lecture rapide et je crois comprendre que la macro2() est exécutée en
premier
elle fait appel à la macro CA qui elle même fait appel à une macro Chiffres
Est-il certain que cette macro chiffre aille à son terme ?
CT

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

Salut Philippe,

Merci pour tes réponses. Mais je ne trouve toujours pas la solution à mon
problème. Si tu as le courage de te pencher sur mes macros, peux-tu
m'expliquer pourquoi mon traitement s'arrête systématiquement avant que la
macro "Clôture" ne soit exécutée.

Voici la macro appelante :

Sub Macro2()

' Lancement du traitement des fichiers de CA

Application.Run "'Lancement.xls'!CA"

' Lancement de la suppression des fichiers requis et fermeture du fichier

Application.Run "'Lancement.xls'!Clôture"

' Fermeture de l'Applicatif

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Les macros appelées sont les suivantes :

Macro "CA" :

Sub CA()

' Macro enregistrée le 20/09/2004 par INTERSPORT FRANCE S.A.

' Copie du fichier Achve20.xls

FileCopy "I:DEPARTCENTRALEACHVE20.XLS",
"Gestion2cProfessionnelBases de donnéesExtractionsCA.xls"

' Ouverture du fichier Traitement des Extractions

ChDir "Gestion2cProfessionnelBases de donnéesExtractions"
Workbooks.Open Filename:= _
"Gestion2cProfessionnelBases de
donnéesExtractionsTraitements
Quotidiens.xls"
Application.Run "'Traitements Quotidiens.xls'!Chiffres"

End Sub

Macro "Clôture" :

Sub Clôture()

' Macro enregistrée le 23/09/2004 par SPORT LEADER

Kill "Gestion2CProfessionnelBases de
donnéesExtractionsGlisse.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsSportswear.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsMultisport.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsChaussures.xls"
Kill "Gestion2CProfessionnelBases de donnéesExtractionsCA.xls"
Kill "I:DEPARTCENTRALEACHVE16.XLS"
Kill "I:DEPARTCENTRALEACHVE17.XLS"
Kill "I:DEPARTCENTRALEACHVE18.XLS"
Kill "I:DEPARTCENTRALEACHVE19.XLS"
Kill "I:DEPARTCENTRALEACHVE20.XLS"

End Sub

C'est donc cette dernière macro qui n'est jamais exécutée. Identifies-tu
un
problème ???
Est-ce que cela peut venir de la macro "Chiffres" lancée par la macro "CA"
???

Merci d'avance,

Yvan.


Bonjour Yvan,
Il existe plusieurs types de modules.
Celui dans lequel l'enregistreur de macros range les procédures que tu
lui dictes est appelé module
standard il peut recevoir, outre les procédures, les fonctions
personnalisées.
Il existe aussi les modules de feuille, qui ne peuvent pas accueillir de
fonction et qui peuvent en
revanche abriter des procédures événementielles de feuille (change,
sélection_change...) ou encore un
module propre au classeur : Thisworkbook() qui abrite les procédures
événementielles du classeur (Open,
Beforesave....)
Il existe enfin les modules de classe qui permettent de gérer des objets
en leur attribuant des
propriétés.

Les procédures peuvent être appelées indifféremment d'un module à
l'autre, avec pour restriction que les
variables doivent être déclarées publiques (public maVar as ...) pour
être utilisables dans tout le
classeur.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros
appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans
le
même module. Si oui, quelles peuvent être les incidences qu'elles
soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.









Avatar
Yvan
Bonjour Claude,

Il est certain que la macro Chiffres va à son terme, par contre, comme le
souligne Philippe, je pense que la macro appelante "Macro2" perd la main.

Comment faire (en dehors de regrouper l'ensemble des macros dans un même
classeur), pour que "Macro2" reprenne bien la main à l'issue de "Chiffres"
??? Y-a-t-il une instructions à rajouter à la fin de cette macro ???

Merci d'avance,


Bonsoir,
une lecture rapide et je crois comprendre que la macro2() est exécutée en
premier
elle fait appel à la macro CA qui elle même fait appel à une macro Chiffres
Est-il certain que cette macro chiffre aille à son terme ?
CT

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

Salut Philippe,

Merci pour tes réponses. Mais je ne trouve toujours pas la solution à mon
problème. Si tu as le courage de te pencher sur mes macros, peux-tu
m'expliquer pourquoi mon traitement s'arrête systématiquement avant que la
macro "Clôture" ne soit exécutée.

Voici la macro appelante :

Sub Macro2()

' Lancement du traitement des fichiers de CA

Application.Run "'Lancement.xls'!CA"

' Lancement de la suppression des fichiers requis et fermeture du fichier

Application.Run "'Lancement.xls'!Clôture"

' Fermeture de l'Applicatif

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Les macros appelées sont les suivantes :

Macro "CA" :

Sub CA()

' Macro enregistrée le 20/09/2004 par INTERSPORT FRANCE S.A.

' Copie du fichier Achve20.xls

FileCopy "I:DEPARTCENTRALEACHVE20.XLS",
"Gestion2cProfessionnelBases de donnéesExtractionsCA.xls"

' Ouverture du fichier Traitement des Extractions

ChDir "Gestion2cProfessionnelBases de donnéesExtractions"
Workbooks.Open Filename:= _
"Gestion2cProfessionnelBases de
donnéesExtractionsTraitements
Quotidiens.xls"
Application.Run "'Traitements Quotidiens.xls'!Chiffres"

End Sub

Macro "Clôture" :

Sub Clôture()

' Macro enregistrée le 23/09/2004 par SPORT LEADER

Kill "Gestion2CProfessionnelBases de
donnéesExtractionsGlisse.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsSportswear.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsMultisport.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsChaussures.xls"
Kill "Gestion2CProfessionnelBases de donnéesExtractionsCA.xls"
Kill "I:DEPARTCENTRALEACHVE16.XLS"
Kill "I:DEPARTCENTRALEACHVE17.XLS"
Kill "I:DEPARTCENTRALEACHVE18.XLS"
Kill "I:DEPARTCENTRALEACHVE19.XLS"
Kill "I:DEPARTCENTRALEACHVE20.XLS"

End Sub

C'est donc cette dernière macro qui n'est jamais exécutée. Identifies-tu
un
problème ???
Est-ce que cela peut venir de la macro "Chiffres" lancée par la macro "CA"
???

Merci d'avance,

Yvan.


Bonjour Yvan,
Il existe plusieurs types de modules.
Celui dans lequel l'enregistreur de macros range les procédures que tu
lui dictes est appelé module
standard il peut recevoir, outre les procédures, les fonctions
personnalisées.
Il existe aussi les modules de feuille, qui ne peuvent pas accueillir de
fonction et qui peuvent en
revanche abriter des procédures événementielles de feuille (change,
sélection_change...) ou encore un
module propre au classeur : Thisworkbook() qui abrite les procédures
événementielles du classeur (Open,
Beforesave....)
Il existe enfin les modules de classe qui permettent de gérer des objets
en leur attribuant des
propriétés.

Les procédures peuvent être appelées indifféremment d'un module à
l'autre, avec pour restriction que les
variables doivent être déclarées publiques (public maVar as ...) pour
être utilisables dans tout le
classeur.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros
appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans
le
même module. Si oui, quelles peuvent être les incidences qu'elles
soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.














Avatar
Yvan
Philippe,

Comment se fait-il qu'une macro puisse perdre la main. Peut-on éviter ce
risque, en dehors du regroupement des macros au sein d'un même classeur ???

A plus,


Re,
De ce que je vois, comprends que tu lances depuis un classeur donné des macros qui sont dans d'autres
classeurs comme Lancement.xls ou Traitements Quotidiens.xls et il me semble qu'il y a là le risque pour
le classeur initial de perdre la main.
Il serait plus simple que l'ensemble des macros nécessaires soient regroupées dans un même classeur, sur
plusieurs modules éventuellement
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Salut Philippe,

Merci pour tes réponses. Mais je ne trouve toujours pas la solution à mon
problème. Si tu as le courage de te pencher sur mes macros, peux-tu
m'expliquer pourquoi mon traitement s'arrête systématiquement avant que la
macro "Clôture" ne soit exécutée.

Voici la macro appelante :

Sub Macro2()

' Lancement du traitement des fichiers de CA

Application.Run "'Lancement.xls'!CA"

' Lancement de la suppression des fichiers requis et fermeture du fichier

Application.Run "'Lancement.xls'!Clôture"

' Fermeture de l'Applicatif

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Les macros appelées sont les suivantes :

Macro "CA" :

Sub CA()

' Macro enregistrée le 20/09/2004 par INTERSPORT FRANCE S.A.

' Copie du fichier Achve20.xls

FileCopy "I:DEPARTCENTRALEACHVE20.XLS",
"Gestion2cProfessionnelBases de donnéesExtractionsCA.xls"

' Ouverture du fichier Traitement des Extractions

ChDir "Gestion2cProfessionnelBases de donnéesExtractions"
Workbooks.Open Filename:= _
"Gestion2cProfessionnelBases de donnéesExtractionsTraitements
Quotidiens.xls"
Application.Run "'Traitements Quotidiens.xls'!Chiffres"

End Sub

Macro "Clôture" :

Sub Clôture()

' Macro enregistrée le 23/09/2004 par SPORT LEADER

Kill "Gestion2CProfessionnelBases de donnéesExtractionsGlisse.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsSportswear.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsMultisport.xls"
Kill "Gestion2CProfessionnelBases de
donnéesExtractionsChaussures.xls"
Kill "Gestion2CProfessionnelBases de donnéesExtractionsCA.xls"
Kill "I:DEPARTCENTRALEACHVE16.XLS"
Kill "I:DEPARTCENTRALEACHVE17.XLS"
Kill "I:DEPARTCENTRALEACHVE18.XLS"
Kill "I:DEPARTCENTRALEACHVE19.XLS"
Kill "I:DEPARTCENTRALEACHVE20.XLS"

End Sub

C'est donc cette dernière macro qui n'est jamais exécutée. Identifies-tu un
problème ???
Est-ce que cela peut venir de la macro "Chiffres" lancée par la macro "CA" ???

Merci d'avance,

Yvan.


Bonjour Yvan,
Il existe plusieurs types de modules.
Celui dans lequel l'enregistreur de macros range les procédures que tu lui dictes est appelé module
standard il peut recevoir, outre les procédures, les fonctions personnalisées.
Il existe aussi les modules de feuille, qui ne peuvent pas accueillir de fonction et qui peuvent en
revanche abriter des procédures événementielles de feuille (change, sélection_change...) ou encore un
module propre au classeur : Thisworkbook() qui abrite les procédures événementielles du classeur
(Open,
Beforesave....)
Il existe enfin les modules de classe qui permettent de gérer des objets en leur attribuant des
propriétés.

Les procédures peuvent être appelées indifféremment d'un module à l'autre, avec pour restriction que
les
variables doivent être déclarées publiques (public maVar as ...) pour être utilisables dans tout le
classeur.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour,

Quelqu'un peut-il m'éclairer sur la notion de Module ???

Lorsque je crée une macro, celle-ci vient se loger dans un module.

Quelle est la fonction exacte du module ???

Si j'enchaine plusieurs macros (une macro appelante et des macros appelées)
les unes à la suite des autres, doivent-elles être obligatoirement dans le
même module. Si oui, quelles peuvent être les incidences qu'elles soient
stockées dans des modules différents.

Est-il possible de gérer les modules à sa guise ??? Si oui, comment ???

--
Merci pour vos réponses.














1 2