OVH Cloud OVH Cloud

Triturer Modules depuis macro.

13 réponses
Avatar
John Fuss
Bonjour,

j'utilise une macro principale qui évolue tout le tps (avec un module appelé
: Mod_JMO) et bcp de macros secondaires qui utilisent (une copie) de mon
module (Mod_JMO) qui contient toutes mes fonctions persos, enumérations,
types et autres.

Comment puis-je depuis une fonction ds ma macro principale mettre à jour le
module Mod_JMO dans toutes mes macros secondaires ?

Merci d'avance.

John.

3 réponses

1 2
Avatar
John Fuss
Merci bcp, effectivement c'est ce que je cherchai, je venai de poster la
réponse qd j'ai vu ton post.

Merci à toi

John

"Michel Pierron" a écrit dans le message de
news:
Salut John;
....
For i = 1 To Application.VBE.VBProjects.Count
If Application.VBE.VBProjects(i).name <>
GetFileInfo(ThisWorkbook.name, Nom)

_
And Application.VBE.VBProjects(i).name <> "VBAProject" Then
DoEvents
Application.VBE.VBProjects(i).VBComponents.Remove
Application.VBE.VBProjects(i).VBComponents("Mod_JMO")
Application.VBE.VBProjects(i).VBComponents.Import fichier
Workbooks(Application.VBE.VBProjects(i).Filename).Save
End If
Next
....

ça devrait le faire !
MP

"John Fuss" a écrit dans le message de
news:botflr$e7a$
Je n'arrive qu'à sauver la macro complementaire qui contient ma f° car
il


accepte Thisworkbook.Save mais impossible d'accrocher les autres :(

John

"Vincent." a écrit dans le message de
news:0c3f01c3a926$63c25f40$
Je dois avouer que j'arrive à la limite de mes capacités.
Je n'utilise pas encore les addins, mais peut-être qu'en
les désinstallant avec .installed úlse et les
réinstallant ça fera l'affaire.
M'enfin là, comme je te le disais, je suis un peu sec sur
le sujet !
Je m'y penche si j'ai 5 minutes, ça m'a l'air intéressant
comme pb !!!

-----Message d'origine-----
Effectivement je n'arrive pas à m'en sortir avec mes xla.
Une solution ?


Merci d'avance

John

"John Fuss" a écrit dans le message
de

news:bot7qi$637$
Ok, je me lance la dessus, j'avais oublié de préciser
(je sais plus) que


mes
fichiers sont des macros complémentaires (xla). Mais je
me lance.



Yallah aussi.

John.

"Vincent." a écrit
dans le message de


news:037801c3a912$25066f30$
Salut John !
Si je te suis bien, tu as :
- un module de base Mod_JMO dans un classeur
disons "source"
- des fichiers secondaires dans lesquels se retrouve le
module Mod_JMO
En partant du principe que dans les fichiers secondaires
les modules Mod_JMO sont censés correspondre exactement
au


même module du fichier "source", tu peux essayer :

Sub yalah()

Set SelectedWorkbooks = Array( [tes fichiers
secondaires] )



ThisWorkbook.VBProject.VBComponents("Mod_JMO").Export _
"C:ztempz.bas"
For Each wk In SelectedWorkbooks
Set wk = Workbooks.Open(wk.Name)
wk.VBProject.VBComponents.Remove _
wk.VBProject.VBComponents("Mod_JMO")
wk.VBProject.VBComponents.Import _
"C:ztempz.bas"
wk.Close True
Next wk
Kill "C:ztempz.bas"

End Sub

Je dirais que ça marche. Evidemment, je ne l'ai pas
testé


grandeur nature, et c'est le genre de code qui est à
manipuler avec la plus grande précaution...
En espérant que cela fera ton bonheur !
A+

Vincent.

-----Message d'origine-----
Bonjour,

j'utilise une macro principale qui évolue tout le tps
(avec un module appelé

: Mod_JMO) et bcp de macros secondaires qui utilisent
(une copie) de mon

module (Mod_JMO) qui contient toutes mes fonctions
persos, enumérations,

types et autres.

Comment puis-je depuis une fonction ds ma macro
principale mettre à jour le

module Mod_JMO dans toutes mes macros secondaires ?

Merci d'avance.

John.


.







.













Avatar
Vincent.
Gaffe au (1) à changer par (i) !!! sinon, ça risque de te
faire des choses surprenantes (je ne l'avais testé que sur
un fichier et non sur une boucle !)
A+ (de rien ;-)

V.

-----Message d'origine-----
Public Function SaveAllProjects()
Dim i As Integer

For i = 1 To Application.VBE.VBProjects.Count
If Application.VBE.VBProjects(i).name
<> "VBAProject" Then

Workbooks(GetFileInfo
(Application.VBE.VBProjects(1).FileName,

NomComplet)).Save
End If
Next
End Function


ça marche.nickel !!! Merci à toi

John


"Vincent." a écrit
dans le message de

news:05b601c3a929$c7446f10$
Juste après l'import du fichier temporaire (j'apprécie bcp
ton adaptation, notamment le fait de passer par le
répertoire temporaire et les autres méthodes de traitement
des fichiers ;-))), essaie de mettre ceci :
Workbooks(Application.VBE.VBProjects(1).Filename).Save
Ca permet "d'accrocher" le nom du fichier, normalement ;-)
A+

V.

-----Message d'origine-----
Je n'arrive qu'à sauver la macro complementaire qui
contient ma f° car il

accepte Thisworkbook.Save mais impossible d'accrocher les
autres :(


John

"Vincent." a écrit
dans le message de

news:0c3f01c3a926$63c25f40$
Je dois avouer que j'arrive à la limite de mes capacités.
Je n'utilise pas encore les addins, mais peut-être qu'en
les désinstallant avec .installed úlse et les
réinstallant ça fera l'affaire.
M'enfin là, comme je te le disais, je suis un peu sec sur
le sujet !
Je m'y penche si j'ai 5 minutes, ça m'a l'air intéressant
comme pb !!!

-----Message d'origine-----
Effectivement je n'arrive pas à m'en sortir avec mes
xla.



Une solution ?

Merci d'avance

John

"John Fuss" a écrit dans le
message



de
news:bot7qi$637$
Ok, je me lance la dessus, j'avais oublié de préciser
(je sais plus) que


mes
fichiers sont des macros complémentaires (xla). Mais
je




me lance.

Yallah aussi.

John.

"Vincent." a écrit
dans le message de


news:037801c3a912$25066f30$
Salut John !
Si je te suis bien, tu as :
- un module de base Mod_JMO dans un classeur
disons "source"
- des fichiers secondaires dans lesquels se retrouve
le




module Mod_JMO
En partant du principe que dans les fichiers
secondaires



les modules Mod_JMO sont censés correspondre
exactement




au
même module du fichier "source", tu peux essayer :

Sub yalah()

Set SelectedWorkbooks = Array( [tes fichiers
secondaires] )



ThisWorkbook.VBProject.VBComponents("Mod_JMO").Export
_




"C:ztempz.bas"
For Each wk In SelectedWorkbooks
Set wk = Workbooks.Open(wk.Name)
wk.VBProject.VBComponents.Remove _
wk.VBProject.VBComponents("Mod_JMO")
wk.VBProject.VBComponents.Import _
"C:ztempz.bas"
wk.Close True
Next wk
Kill "C:ztempz.bas"

End Sub

Je dirais que ça marche. Evidemment, je ne l'ai pas
testé


grandeur nature, et c'est le genre de code qui est à
manipuler avec la plus grande précaution...
En espérant que cela fera ton bonheur !
A+

Vincent.

-----Message d'origine-----
Bonjour,

j'utilise une macro principale qui évolue tout le tps
(avec un module appelé

: Mod_JMO) et bcp de macros secondaires qui utilisent
(une copie) de mon

module (Mod_JMO) qui contient toutes mes fonctions
persos, enumérations,

types et autres.

Comment puis-je depuis une fonction ds ma macro
principale mettre à jour le

module Mod_JMO dans toutes mes macros secondaires ?

Merci d'avance.

John.


.







.




.




.







Avatar
John Fuss
Exact, merci bcp.

ça marche nickel tout ça.

John
"Vincent." a écrit dans le message de
news:05d401c3a92f$0cd5ef90$
Gaffe au (1) à changer par (i) !!! sinon, ça risque de te
faire des choses surprenantes (je ne l'avais testé que sur
un fichier et non sur une boucle !)
A+ (de rien ;-)

V.

-----Message d'origine-----
Public Function SaveAllProjects()
Dim i As Integer

For i = 1 To Application.VBE.VBProjects.Count
If Application.VBE.VBProjects(i).name
<> "VBAProject" Then

Workbooks(GetFileInfo
(Application.VBE.VBProjects(1).FileName,

NomComplet)).Save
End If
Next
End Function


ça marche.nickel !!! Merci à toi

John


"Vincent." a écrit
dans le message de

news:05b601c3a929$c7446f10$
Juste après l'import du fichier temporaire (j'apprécie bcp
ton adaptation, notamment le fait de passer par le
répertoire temporaire et les autres méthodes de traitement
des fichiers ;-))), essaie de mettre ceci :
Workbooks(Application.VBE.VBProjects(1).Filename).Save
Ca permet "d'accrocher" le nom du fichier, normalement ;-)
A+

V.

-----Message d'origine-----
Je n'arrive qu'à sauver la macro complementaire qui
contient ma f° car il

accepte Thisworkbook.Save mais impossible d'accrocher les
autres :(


John

"Vincent." a écrit
dans le message de

news:0c3f01c3a926$63c25f40$
Je dois avouer que j'arrive à la limite de mes capacités.
Je n'utilise pas encore les addins, mais peut-être qu'en
les désinstallant avec .installed úlse et les
réinstallant ça fera l'affaire.
M'enfin là, comme je te le disais, je suis un peu sec sur
le sujet !
Je m'y penche si j'ai 5 minutes, ça m'a l'air intéressant
comme pb !!!

-----Message d'origine-----
Effectivement je n'arrive pas à m'en sortir avec mes
xla.



Une solution ?

Merci d'avance

John

"John Fuss" a écrit dans le
message



de
news:bot7qi$637$
Ok, je me lance la dessus, j'avais oublié de préciser
(je sais plus) que


mes
fichiers sont des macros complémentaires (xla). Mais
je




me lance.

Yallah aussi.

John.

"Vincent." a écrit
dans le message de


news:037801c3a912$25066f30$
Salut John !
Si je te suis bien, tu as :
- un module de base Mod_JMO dans un classeur
disons "source"
- des fichiers secondaires dans lesquels se retrouve
le




module Mod_JMO
En partant du principe que dans les fichiers
secondaires



les modules Mod_JMO sont censés correspondre
exactement




au
même module du fichier "source", tu peux essayer :

Sub yalah()

Set SelectedWorkbooks = Array( [tes fichiers
secondaires] )



ThisWorkbook.VBProject.VBComponents("Mod_JMO").Export
_




"C:ztempz.bas"
For Each wk In SelectedWorkbooks
Set wk = Workbooks.Open(wk.Name)
wk.VBProject.VBComponents.Remove _
wk.VBProject.VBComponents("Mod_JMO")
wk.VBProject.VBComponents.Import _
"C:ztempz.bas"
wk.Close True
Next wk
Kill "C:ztempz.bas"

End Sub

Je dirais que ça marche. Evidemment, je ne l'ai pas
testé


grandeur nature, et c'est le genre de code qui est à
manipuler avec la plus grande précaution...
En espérant que cela fera ton bonheur !
A+

Vincent.

-----Message d'origine-----
Bonjour,

j'utilise une macro principale qui évolue tout le tps
(avec un module appelé

: Mod_JMO) et bcp de macros secondaires qui utilisent
(une copie) de mon

module (Mod_JMO) qui contient toutes mes fonctions
persos, enumérations,

types et autres.

Comment puis-je depuis une fonction ds ma macro
principale mettre à jour le

module Mod_JMO dans toutes mes macros secondaires ?

Merci d'avance.

John.


.







.




.




.







1 2