O
Omicron
Guest
Bonjour à tous,
Je suis en train de tester les possibilités de Vb en matière d'ajout dynamique de composants dans un projet VB.
Le code suivant est sensé repérer s'il existe déja un composant de type Forme du nom de "Test_Form" dans le projet; et s'il le trouve, de le supprimer puis de le re-créer
Ce code marche très bien à la première exécution, mais aux exécutions suivantes il se plante sur la dernière instruction (Renommage du composant) avec le message :
erreur 75
objet spécifié introuvable
Si je ferme le classeur et le rouvre ensuite, idem : la première exécution fonctionne mais pas les suivantes.
Voici le code :
====================================================================
Private Sub CommandButton5_Click()
'Suppression du composant (Forme) nommée Test_Form s'il existe
For Each Cps In ActiveWorkbook.VBProject.VBComponents
If Cps.Type = vbext_ct_MSForm And Cps.Name = "Test_Form" Then
Rep = MsgBox("Composant Test_Form trouvé. Voulez vous le supprimer ?", vbOKCancel)
If Rep = vbCancel Then
Exit Sub
Else
ActiveWorkbook.VBProject.VBComponents.Remove VBComponent:=Cps
Exit For
End If
End If
Next Cps
'Re-création d'un composant (Forme)
Set CpsFrm = ActiveWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
'Affectation du nom "Test_Forme" à ce nouveau composant
CpsFrm.Name = "Test_Form"
End Sub
=====================================================================
Merci d'avance à tous ceux qui pourraient me donner un coup de main.
Omicron
Je suis en train de tester les possibilités de Vb en matière d'ajout dynamique de composants dans un projet VB.
Le code suivant est sensé repérer s'il existe déja un composant de type Forme du nom de "Test_Form" dans le projet; et s'il le trouve, de le supprimer puis de le re-créer
Ce code marche très bien à la première exécution, mais aux exécutions suivantes il se plante sur la dernière instruction (Renommage du composant) avec le message :
erreur 75
objet spécifié introuvable
Si je ferme le classeur et le rouvre ensuite, idem : la première exécution fonctionne mais pas les suivantes.
Voici le code :
====================================================================
Private Sub CommandButton5_Click()
'Suppression du composant (Forme) nommée Test_Form s'il existe
For Each Cps In ActiveWorkbook.VBProject.VBComponents
If Cps.Type = vbext_ct_MSForm And Cps.Name = "Test_Form" Then
Rep = MsgBox("Composant Test_Form trouvé. Voulez vous le supprimer ?", vbOKCancel)
If Rep = vbCancel Then
Exit Sub
Else
ActiveWorkbook.VBProject.VBComponents.Remove VBComponent:=Cps
Exit For
End If
End If
Next Cps
'Re-création d'un composant (Forme)
Set CpsFrm = ActiveWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
'Affectation du nom "Test_Forme" à ce nouveau composant
CpsFrm.Name = "Test_Form"
End Sub
=====================================================================
Merci d'avance à tous ceux qui pourraient me donner un coup de main.
Omicron