Problème parcours de contrôles dans UserForm

  • Initiateur de la discussion Initiateur de la discussion ailete
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ailete

XLDnaute Nouveau
Bonjour,

je réalise un formulaire en VBA qui me génère un rapport sur Word.
Dans ce formulaire, j'ai plusieurs Frames, découpées en parties et sous-parties (ex : 1, 1.1, 1.1.2 etc...)

Je fais un parcours de ces contrôles grâce au For each ... If TypeName(control)="frame" etc...
Les propriétés TabIndex des différents contrôles sont bien paramétrées (frm1_1 : tabIndex = 0, frm1_2 : tabIndex = 1...) Cependant, quand la macro parcours les contrôle dans le For Each, certaines Frame sont "sautées" (ex: il parcourt frm1_2_2, 1_2_3, 1_2_4 et ensuite seulement 1_2_1)

Je ne sais pas comment cela se fait qu'il réagisse comme ça.

J'attends vos éclaircissements, en espérant avoir été un petit peu clair quand même 🙂

Merci d'avance!
 
Re : Problème parcours de contrôles dans UserForm

Merci pour ta réponse.

Je l'ai fait, tout est dans l'ordre, mais il continue de parcourir bizarrement.
Même quand je mets tout dans le désordre, il parcourt exactement de la même façon...
 
Re : Problème parcours de contrôles dans UserForm

Re,
et en remplaçant ta boucle for each par for i = 1 to TonNombreDeControles.....Next i ?
Sinon en exécutant ta macro pas à pas, tu pourrais peut-être y voir plus clair quant à son comportement...
A+
 
Re : Problème parcours de contrôles dans UserForm

Rien n'y fait, même avec un for "normal".
J'ai exécuté pas à pas, je n'y voit rien de spécial, mis à part que le focus se fait sur les contrôles sans suivre l'ordre de tabulation...

Je n'y comprends rien, y a aucune logique la dedans.
 
Re : Problème parcours de contrôles dans UserForm

En fait il suit l'ordre dans lequel les contrôles ont été créés, et non-pas l'ordre de tabulation.
Mais j'ai tellement de frames, je ne peux pas me retaper tout le boulot, vous ne savez pas s'il y a moyen de le faire suivre l'ordre de tabulation plutot que l'ordre de création?
 
Re : Problème parcours de contrôles dans UserForm

Bonjour Alete, David🙂

peut être avec une approche comme ci-dessous :
Code:
Option Explicit
Private Sub UserForm_Click()
Dim c As Control, t() As Variant, i As Byte
For Each c In Me.Controls
    If TypeName(c) = "Frame" Then i = i + 1
Next c
ReDim t(0 To i - 1)
For Each c In Me.Controls
    If TypeName(c) = "Frame" Then t(c.TabIndex) = c.Name
Next c
For i = 0 To UBound(t)
    MsgBox t(i)
Next i
End Sub

bonne journée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour