• Initiateur de la discussion Initiateur de la discussion patrick
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
7
Affichages
283
Réponses
1
Affichages
91
Réponses
32
Affichages
802
Retour