![]() |
|
Forum
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
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_S tdModule)'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).Cod eModule '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 |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
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_S tdModule) 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 |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
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 |
| Liens sociaux |
| Outils de la discussion | |
|
|