Merci pour vos réponses.
En fait, lors de la construction de mon formulaire je fais de fausses manipulations.
Je ne m'en suis rendu qu'en testant mon formulaire.
J'ai une procédure qui vérifie que les contrôles ayant un tag sont bien remplis avant l'enregistrement des données.
VB:
Private Sub Complet()
Dim CtrL As MSForms.Control
kit = False
For Each CtrL In Me.Controls
If TypeOf CtrL Is MSForms.Textbox Or TypeOf CtrL Is MSForms.ComboBox Then
Debug.Print CtrL.Name
If CtrL.Tag = "1" Then
If Len(CtrL) = 0 Then
CtrL.BackColor = RGB(255, 0, 0) 'rouge
kit = True
Else
CtrL.BackColor = &H80FFFF
End If
End If
End If
Next CtrL
If kit Then MsgBox "Complétez les données!"
End Sub
La procédure me renvoyait que des contrôles sont vides alors qu'ils étaient tous renseignés.
Le Debug.Print m'a donné 3 controles (Textbox3 et Combobox1 ,combobox3) que je n'arrive pas à retrouver.
J'ai bien mis leur propriété visible à true par code dans l'initialisation. Ayant plusieurs frames, même en modifiant leur left, top, value. Impossible de les retrouver.
Ma procédure ne me renvoyant plus le message après avoir vidé leur tag ="" par code.
Mais je voudrais les supprimer, d'où ma présente demande de les supprimer par code.
À mon avis s'ils ne sont pas proposés dans la liste déroulante des propriétés c'est qu'ils n'existent pas. Du moins pas avant une insertion dynamique lors de l'exécution.
Je vous remercie. Je viens de résoudre mon problème.
J'avais des frames en double dans d'autres frames avec top et left négatif.
On ne pouvait pas les voir.
Je ne la trouvais pas (elle était dans une frame non visible). Je n'ai donc pas pu agir sur la propriété TabIndex.
J'ai enfin résolu mon problème comme expliqué dans mon précédent post.