Insertion de module

P

patrick

Guest
Bonjour le forum,

J'ai besoin d'insérer un module dans un classeur en cours de création pour y écrire du code
Comment utiliser la commande "ActiveWorkbook.VBProject.VBComponents.Add (vbext_ct_StdModule)"

Merci
 
M

michel

Guest
bonjour Patrick

j'espère que cet exemple pourra t'aider


Sub InsererModuleEtMacro()
'Activer la reference Microsoft Visual Basic For Applications Extensibility 5.3
Dim Vbc As VBComponent
Dim X As Byte
Dim NomModule As String

Set Vbc = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule)'nouveau module dans classeur contenant cette macro
'Vbc.Name = "LeNom" ' option pour personnaliser le nom du module
NomModule = Vbc.Name 'recuperer le nom du module par defaut

With ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule 'insertion d'une macro dans le module créé
X = .CountOfLines
.InsertLines X + 1, "Sub Test()"
.InsertLines X + 2, "MsgBox ""Le forum Xld"",VBinformation "
.InsertLines X + 3, "End Sub"
End With

End Sub


bon dimanche
MichelXld
 
@

@+Thierry

Guest
Bonjour Patrick, Michel

Tant qu'à faire , Michel, on peut directement utiliser ton Object "Vbc" sans passer par la variable "NomModule" :

With Vbc.CodeModule
X = .CountOfLines
Etc etc

Et sinon une autre approche avec "AddFromString"

Sub NewModuleAddFromString()
Dim TheNewModule As VBComponent
Dim TheMacro As String

TheMacro = "Sub Test()" & vbCrLf & "MsgBox ""Le forum Xld"",VBinformation " & vbCrLf & "End Sub"

Set Vbc = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule)
Vbc.CodeModule.AddFromString TheMacro
End Sub


NB pour écrire dans VBE, sous XP penser aussi à cocher dans Excel / Outils / Macro / Sécurité / Second Onglet "Faire Confiance au Projet VB" (ou quelque chose comme çà car c'est de mémoire là !)

Bon Dimanche à tous et toutes@+Thierry
 
M

michel

Guest
bonjour @+Thierry

j'espere que tu vas bien . Cela faisait un petit moment que l'on ne s'était pas croisé sur un fil de discussion

effectivement je n'ai pas pensé à utiliser l'objet Vbc : il me reste encore beaucoup à apprendre ….;o)


tres bonne journée
MichelXld
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin