Bonjour Flamel, le Forum
Désolé pour ce retard de réponse.
Pour ta dernière question au sujet du (3), en fait en tatonnant j'ai trouvé tout ceci :
Sub AddingVBComponents()
Dim ObjUserForm As Object
Dim ObjModuleStandard As Object
Dim ObjModuleDeClasse As Object
Set ObjModuleStandard = ThisWorkbook.VBProject.VBComponents.Add(1)
Set ObjModuleDeClasse = ThisWorkbook.VBProject.VBComponents.Add(2)
Set ObjUserForm = ThisWorkbook.VBProject.VBComponents.Add(3)
End Sub
Dans l'aide VBA je peux lire ceci :
Vous pouvez utiliser les constantes suivantes pour l'argument component :
Constante Description
vbext_ct_ClassModule Ajoute un module de classe à la collection.
Vbext_ct_MSForm Ajoute une feuille à la collection.
vbext_ct_StdModule Ajoute un module standard à la collection.
Par conséquent on peut également écrire ceci, mais il faudra activer en plus de la Réference VB à 'Microsoft Form 2.0 Object Library' une Référence VB à 'Microsoft Visual Basic For Applications Extensibility 5.3'
Et on pourra écrire la même chose comme ceci :
Sub AddingVBComponentsWithConstanteNames()
Dim ObjUserForm As Object
Dim ObjModuleStandard As Object
Dim ObjModuleDeClasse As Object
'NB Nécessite aussi la Référence à la librairie
'Microsoft Visual Basic For Applications Extensibility 5.3.
Set ObjModuleStandard = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule)
Set ObjModuleDeClasse = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule)
Set ObjUserForm = ThisWorkbook.VBProject.VBComponents.Add(Vbext_ct_MSForm)
End Sub
Pour ta question 'quoiqu'il crée chaque fois un nouvel userform' si tu regardes le fichier
USF_ListBox_A_La_Volee.zip que j'ai mis en lien, tu verras que le UserForm est bien auto-détruit à chaque usage....
Pour le reste, j'ai besoin de plus d'information.
Bonne Journée
[ol]@+Thierry[/ol]
EDITION !!!
Pour les bouquins, je recommande toujours ceux de John Walkenbach traitant du VBA.
Message édité par: _Thierry, à: 22/11/2005 08:33