Rappel: il n'y a pas correspondance entre l'index du Control dans le UserForm et son TabIndex.
Bonjour
ça c'est par ce que quand tu construit tu ajoute et/ou tu enlève des controls
et donc par conséquent à la fin le tabindex n'est pas celui que tu voudrais
sinon le tabindex suit TOUJOURS l'ordre dans le quel tu les a construits dans le( parent direct)
la seule chose a faire pour travailler proprement , c'est de contrôler et modifier le tabindex de tes controls à la fin
on évite ainsi des codes en cul de bouteille
et là encore une fois on cible par le parent dans le cas de frame par exemple
set ctrl=frame1.controls(x+1)'x pour la valeur de tabindex donc controls suivant DANS LA FRAME!!
sinon en vba par exemple
set ctrl=textbox1
va te donner le premier controls s'appelant "textbox1" selon bien sur le tabindex
et c'est pas forcement celui là que tu cible car il peux avoir 36 "textbox1" dans 36 frames
d'ou l'importence de modifier le nom du control à la construction
puisque sans préfixe c'est la première occurrence donc
set ctrl=Frm1TxtBox 'le nom du textbox dans la frame1
set suivant=ctrl.parent.controls(ctrl.tabindex+1)
pas de code alambiqué , du pur ciblage et indexation en bon et du forme