Dans un fichier, des "CMD" sont auto implémentés selon les besoins de l'utilisateur. Ces CMD "écrivent" dans un module dédié. Mon programme fonctionne avec cependant un hic ! Suite à l'écriture de la nouvelle Sub, le programme se retrouve au final dans le code du module ... ce qui bien entendu n'est pas le but. Dans le code ci-dessous j'ai tenté de forcer un retour sur la feuille mais bien que l'écriture en cell(1,1) se réalise, au final le programme se termine tjrs par l'ouverture du module, le rendant ainsi accessible à l'utilisateur !
Voici le code utilisé :
En vous remerciant par avance, cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 'TelNOM = Nom de la macro 'TelNUM = Indice specifique du CMD '"Sub " & TelNOM & "():Call FAIREY(" & TelNUM & ") :End Sub" = La SUB écrite automatiquement 'Nom_MODULE = Public Const du nom du module requis 'Worksheets(F_W) = La feuille de travail du classeur Public Sub ECRIRE_DANS_MODULE(TelNOM As String, TelNUM As Integer) Application.VBE.ActiveVBProject.VBComponents(Nom_MODULE).Activate With Application.VBE.SelectedVBComponent Application.VBE.CodePanes(1).CodeModule.AddFromString "Sub " & TelNOM & "():Call FAIREY(" & TelNUM & ") :End Sub" End With Dim ws As Worksheet: Set ws = Application.ThisWorkbook.Worksheets(F_W) With ws .Activate .Cells(1, 1).Value = 1 End With Set ws = Nothing End Sub
Partager