Bonjour,
Je réalise una appli dans laquelle une feuille est crée, puis du code est copié sur cette feuille, et enfin un userForm est ouvert.
voici le code que j'utilise pour copier le code d'un module (source) vers une feuille (dest)
Et ici la fonction pour instancier mon userForm:
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 Public Function ajouterCodeFeuille(source As String, dest As String) 'pour retirer le souci du codeName vide. If Sheets(dest).codeName = "" Then Dim oVBProj As Object Set oVBProj = ThisWorkbook.VBProject Set oVBProj = Nothing End If Dim feuilleCodeName As String feuilleCodeName = Sheets(dest).codeName Dim modObj As Object With Workbooks("CostReg.xla") Set modObj = .VBProject.VBComponents.Item(source) End With strCode = modObj.CodeModule.Lines(1, modObj.CodeModule.CountOfLines) ActiveWorkbook.VBProject.VBComponents(feuilleCodeName).CodeModule.AddFromString (strCode) End Function
Ces deux fonctions utilisés indépendamment fonctionne à merveille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Function instanciateForm() Dim f As DefPara Set f = New DefPara f.show End Function
Par contre si je les utilisent toutes les deux à la suite, comme là:
Le userForm s'ouvre et se ferme instantanément (on voit un petit clignotement)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ajouterCodeFeuille "evt_feuil2","Feuil2" instanciateForm
mystère...
Partager