Comment creer une macro qui crée une macro puis l'appelle ?
Bonjour,
Je cherche à créer une macro qui en crée une autre puis qui l'appelle.
Tout va bien, sauf que j'ai un message du compilateur qui me dit que la macro que j'appelle n'existe pas...
Et pour cause, elle n'est pas encore créée...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
Function CreMod(NomMod As String, Optional ModCree As Boolean) As Boolean
Dim VBComp As VBComponent
Dim VF_x As Boolean
Dim X_x As Integer
Dim NomSub As String
'Ajoute un module standard dans le classeur
'1) Le module à créer ne doit pas exister
On Error Resume Next
Set VBComp = ThisWorkbook.VBProject.VBComponents(NomMod)
If VBComp Is Nothing Then
VF_x = False
Else
VF_x = True
MsgBox "Le Module " & NomMod & " existe déjà" & Chr(10) & " Error code : 01"
Exit Function
End If
Set VBComp = ThisWorkbook.VBProject.VBComponents.Add(1)
'Renomme le module
VBComp.Name = NomMod
' Ecriture du code dans le module
'1) Ecriture du code ligne à ligne dans le module
NomSub = "TestSub"
With VBComp.CodeModule
X_x = .CountOfLines
' .InsertLines X_x + 1, "Attribute VB_Name = ""TestCreationModule""" ' A utiliser pour creation d'un fichier .bas
.InsertLines X_x + 2, "Option Explicit"
.InsertLines X_x + 3, ""
.InsertLines X_x + 4, "sub " & NomSub & "()"
.InsertLines X_x + 5, "' Test de création automatique de Module"
.InsertLines X_x + 6, "Debug.Print ""Je suis passé par TestSub "" & Now"
.InsertLines X_x + 7, "End Sub"
End With
'2) La proc est lancée
TestSub
CreMod = 1
End Function |
Comment faire ?
J'ai aussi essayé de mettre le nom de la Sub dans une variable, sans plus de succès... :?
Merci de vos aides.