Creer un module avec VBA

Le
Henri
Bonjour,

Afin de rajouter un meme module dans des fichiers excel, sur plusieurs
postes, je souhaite creer un fichier excel unique, avec une macro auto_open,
qui creerait à l'ouverture un module dans un autre fichier ("classeur2.xls"
par exemple) (un peu à la maniere d'un fichier .reg qui peu rajouter des
entrées dans la base de registre)

J'ai trouvé comment creer ce module (Application.modules.add), mais je
n'arrive pas a trouver la commande pour écrire du code dans ce module. Mes
recherches sur le net sont restées sans succès.
Je n'ai pas non plus trouvé comment renommer un module (l'appeler ModuleCrée
par exemple au lieu de Module2)

Quel est donc le code pour qu'une macro copie du texte dans un nouveau
module (si cela est possible) ? et pour renommer un module?

Merci d'avance pour votre aide.
cordialement,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jps
Le #4902571
bonjour Henri
pour renommer ton module :

ThisWorkbook.VBProject.VBComponents("Module2").Name = "NouveauNom"

pour le reste, il te faudra attendre les Einstein qui rôdent dans le
quartier dès que le soleil est couché
jps

"Henri"
Bonjour,

Afin de rajouter un meme module dans des fichiers excel, sur plusieurs
postes, je souhaite creer un fichier excel unique, avec une macro
auto_open, qui creerait à l'ouverture un module dans un autre fichier
("classeur2.xls" par exemple) (un peu à la maniere d'un fichier .reg qui
peu rajouter des entrées dans la base de registre)

J'ai trouvé comment creer ce module (Application.modules.add), mais je
n'arrive pas a trouver la commande pour écrire du code dans ce module. Mes
recherches sur le net sont restées sans succès.
Je n'ai pas non plus trouvé comment renommer un module (l'appeler
ModuleCrée par exemple au lieu de Module2)

Quel est donc le code pour qu'une macro copie du texte dans un nouveau
module (si cela est possible) ? et pour renommer un module?

Merci d'avance pour votre aide.
cordialement,





jps
Le #4902561
re
pour la copie du module, j'ai trouvé ceci, signé Hervé
HTH et bon courage
jps

début de copie

Private Sub ExportImportModule()
Dim Classeur As Workbook
Dim VBPMod As Object
Dim NomClasseur As String
Dim NomModule As String
Dim Chemin As String

NomClasseur = "Mon Classeur.xls"
NomModule = "Module1"

On Error Resume Next
Set VBPMod = ThisWorkbook.VBProject.VBComponents(NomModule)
If Err <> 0 Then
MsgBox "Le module ' " & NomModule & _
" ' n'existe pas !", , "Module."
Exit Sub
End If

Set Classeur = Workbooks(NomClasseur)
If Err <> 0 Then
MsgBox "Veuillez ouvrir le classeur ' " & NomClasseur & _
" ' pour l'import du module !", , "Module."
Exit Sub
End If

On Error GoTo 0

Chemin = ThisWorkbook.Path & "" & NomModule & ".bas"
'exporte
ThisWorkbook.VBProject.VBComponents(NomModule).Export Chemin
'importe
Workbooks(NomClasseur).VBProject.VBComponents.Import Chemin
'supprimer le module si nécessaire
'Kill Chemin

Set VBPMod = Nothing
Set Classeur = Nothing

End Sub

fin de copie

"Henri"
Bonjour,

Afin de rajouter un meme module dans des fichiers excel, sur plusieurs
postes, je souhaite creer un fichier excel unique, avec une macro
auto_open, qui creerait à l'ouverture un module dans un autre fichier
("classeur2.xls" par exemple) (un peu à la maniere d'un fichier .reg qui
peu rajouter des entrées dans la base de registre)

J'ai trouvé comment creer ce module (Application.modules.add), mais je
n'arrive pas a trouver la commande pour écrire du code dans ce module. Mes
recherches sur le net sont restées sans succès.
Je n'ai pas non plus trouvé comment renommer un module (l'appeler
ModuleCrée par exemple au lieu de Module2)

Quel est donc le code pour qu'une macro copie du texte dans un nouveau
module (si cela est possible) ? et pour renommer un module?

Merci d'avance pour votre aide.
cordialement,





Modeste
Le #4902551
Bonsour® Henri avec ferveur ;o))) vous nous disiez :

Afin de rajouter un meme module dans des fichiers excel, sur plusieurs
postes, je souhaite creer un fichier excel unique, avec une macro
auto_open, qui creerait à l'ouverture un module dans un autre fichier
("classeur2.xls" par exemple) (un peu à la maniere d'un fichier .reg
qui peu rajouter des entrées dans la base de registre)

J'ai trouvé comment creer ce module (Application.modules.add), mais je
n'arrive pas a trouver la commande pour écrire du code dans ce
module.


Ecrire directement dans un module existant ne semble pas etre une bonne idée...
il vaut mieux récuperer le module, le modifier
puis procéder par annule et remplace

en l'occurence le "Einstein" du VBE a écrit ceci
http://www.cpearson.com/excel/vbe.htm
qui pourra efficacement te servir de livre de chevet ;o)))


@+
;o)))

LSteph
Le #4902511
Bonsoir,

C'est pas forcément la meilleure idée
mais
de même que tu peux exporter un module
tu peux l'importer.

Sub vienzimodule()
Application.VBE.ActiveVBProject.VBComponents.Import _
"C:Program FilesMicrosoft OfficeOFFICE11Module4.bas"
End Sub

Cordialement.

lSteph

Bonjour,

Afin de rajouter un meme module dans des fichiers excel, sur plusieurs
postes, je souhaite creer un fichier excel unique, avec une macro auto_open,
qui creerait à l'ouverture un module dans un autre fichier ("classeur2.xls"
par exemple) (un peu à la maniere d'un fichier .reg qui peu rajouter des
entrées dans la base de registre)

J'ai trouvé comment creer ce module (Application.modules.add), mais je
n'arrive pas a trouver la commande pour écrire du code dans ce module. Mes
recherches sur le net sont restées sans succès.
Je n'ai pas non plus trouvé comment renommer un module (l'appeler ModuleCrée
par exemple au lieu de Module2)

Quel est donc le code pour qu'une macro copie du texte dans un nouveau
module (si cela est possible) ? et pour renommer un module?

Merci d'avance pour votre aide.
cordialement,





Henri
Le #4612091
Bonsoir,
Merci à tous, je suis arrivé à mes fins grace à la fonction d'importation
que vous me conseilliez. Je n'ai cependant pas reussi à exporter le module
grace à la macro, mais j'ai donc exporté cela manuellement, dans le meme
dossier, et la macro m'a réimporté ca toute seule dans le bon fichier!

"Henri"
Bonjour,

Afin de rajouter un meme module dans des fichiers excel, sur plusieurs
postes, je souhaite creer un fichier excel unique, avec une macro
auto_open, qui creerait à l'ouverture un module dans un autre fichier
("classeur2.xls" par exemple) (un peu à la maniere d'un fichier .reg qui
peu rajouter des entrées dans la base de registre)

J'ai trouvé comment creer ce module (Application.modules.add), mais je
n'arrive pas a trouver la commande pour écrire du code dans ce module. Mes
recherches sur le net sont restées sans succès.
Je n'ai pas non plus trouvé comment renommer un module (l'appeler
ModuleCrée par exemple au lieu de Module2)

Quel est donc le code pour qu'une macro copie du texte dans un nouveau
module (si cela est possible) ? et pour renommer un module?

Merci d'avance pour votre aide.
cordialement,





LSteph
Le #4611991
Bonsoir Henri,

Tu avais .Export mais avec un petit caprice en plus
désigner l'.item puis le chenim qu'on lui veut.

Sub ExpMod()
Application.VBE.ActiveVBProject.VBComponents.Item("Module1") _
.Export ("c:Monmodule2.bas")
End Sub


... mais j'ai donc exporté cela manuellement
C'est tout aussi simple!


... à tous, je suis arrivé à mes fins
...et ainsi ...à tous c'est notre plaisir!


@bientôt.

lSteph




Bonsoir,
Merci à tous, je suis arrivé à mes fins grace à la fonction d'importation
que vous me conseilliez. Je n'ai cependant pas reussi à exporter le module
grace à la macro, mais j'ai donc exporté cela manuellement, dans le meme
dossier, et la macro m'a réimporté ca toute seule dans le bon fichier!

"Henri"


Publicité
Poster une réponse
Anonyme