ordre de tabulation - résolu

mikeo

XLDnaute Occasionnel
Bonjour,

J'ai un userform avec des textbox, par exemple de textbox1 à textbox10. Je peux utiliser dans le menu VB affichage - ordre de tabulation pour naviguer entre les tbx après la validation enter.

Première question : est-il possible dans l'ordre de tabulation de dupliquer des tbx pour revenir plusieurs fois sur un tbx ? par exemple tb1 - tb2 - tb3 - tb4 - tb3

Si cela n'est pas faisable, je peux faire un setfocus après dans le sub tb4_change. Mais à chaque touche il m'envoie sur le tb3 sans me laisser le temps de finir ma saisie. J'ai essayé before-update ou after-update mais cela ne semble pas marcher. Auriez vous une astuce pour cela ? Avec de gros remerciements.

Mikeo
 
Dernière édition:

mikeo

XLDnaute Occasionnel
Re : ordre de tabulation

Bonjour les amis,

Pas pu dormir.
Déjà il semble que l'on ne peut pas faire ce qu'on veut avec l'ordre de tabulation.

@Tototiti : l'instruction exit ne semble pas marcher

@Pierrot93 : je ne trouve la "propriété" setfocus dans les textbox, à moins que j'ai mal regardé.

Dans l'exemple suivant, j'aimerais passer au bouton "valider" après tb3, tb4 ou tb5. Est ce possible ?

Mikeo
 

Pièces jointes

  • setfocus.xls
    24.5 KB · Affichages: 81
  • setfocus.xls
    24.5 KB · Affichages: 79
  • setfocus.xls
    24.5 KB · Affichages: 79

mikeo

XLDnaute Occasionnel
Re : ordre de tabulation

Bonjour Jean-Marcel,

Merci pour ton intervention.

J'ai essayé before update mais parfois les déplacements sont incontrôlables. Par exemple dans cet exemple suivant les tb4 et tb5 renvoient au bouton valider. Par contre le tb3 renvoie au tb5. Si je modifie l'ordre de tabulation ou le tabindex, l'ordre est différent mais inexplicable. tb_exit fait un peu pareil.

Cancel = true ne marche pas dans cet exemple.

Mikeo
 

Pièces jointes

  • setfocus.xls
    34.5 KB · Affichages: 70
  • setfocus.xls
    34.5 KB · Affichages: 68
  • setfocus.xls
    34.5 KB · Affichages: 64

Pierrot93

XLDnaute Barbatruc
Re : ordre de tabulation

bonsoir à tous

pas tout compris du but recherché, essaye peut être en modifiant la propriété "TakeFocusOnClick" du bouton... APlace le code ci-dessous dans l'événement "initialize" de l'usf :

Code:
VALIDER.TakeFocusOnClick = False

bonne soirée
@+
 

mikeo

XLDnaute Occasionnel
Re : ordre de tabulation

Bonjour à tous,

@Tototiti @ Pierrot Merci à vous.

Pour simplifier, on peut dire que je veux alimenter des enregistrements dans une BD. Il y a des données obligatoires (par ex tb1 tb2 tb3) et des données qui ont besoin d'être saisies de temps en temps (tb4 tb5).

Dans une saisie normale je fais tb1 tb2 tb3 et valider pour enregistrer. Mais de temps en temps je dois revenir sur tb4 ou tb5 avec la souris, et je passe après à valider.

Pour l'enregistrement je ne veux pas vous déranger car je sais faire. Ce que je demande c'est de pouvoir contrôler les déplacements des tb au bouton valider. Dans mes fichiers simplifiés vous voyez bien que les déplacements n'obéissent pas au setfocus. (Le code de Pierrot #9 ne règle pas le problème).

En résumé, si vous pouvez avec mon fichier au #7 faire en sorte que les déplacements se fassent ainsi :
- tb1 -tb2 - tb3 - valider
- tb4 - valider
- tb5 - valider
alors cela résoudrait mon problème.

Mikeo
 

Yaloo

XLDnaute Barbatruc
Re : ordre de tabulation

Bonjour à tous,

Avec SetFocus, Exit etc... cela ne parait pas faisable, dans l'aide VBA il y a ceci concernant AfterUpdate :

AfterUpdate, événement
Voir aussi Exemple S'applique à Spécificités

Survient après la modification de données dans un contrôle par l'utilisateur.

Syntaxe

Private Sub object_AfterUpdate( )

La syntaxe de l'événement AfterUpdate comprend les éléments suivants :

Élément Description
object Objet valide.


Remarques

L'événement AfterUpdate se produit, que le contrôle soit dépendant ou non dépendant (c'est-à-dire, lorsque la propriété RowSource spécifie une source de données pour le contrôle). Cet événement ne peut être annulé. Si vous souhaitez annuler la mise à jour (pour rétablir la valeur précédente du contrôle), utilisez l'événement BeforeUpdate et affectez la valeur True à l'argument Cancel.

L'événement AfterUpdate se produit après l'événement BeforeUpdate et avant l'événement Exit pour le contrôle actif et avant l'événement Enter pour le contrôle suivant dans l'ordre de tabulation

En gros, le dernier mot est toujours pour l'ordre de tabulation.

Je pense que la meilleur méthode est celle donnée par Pierrot.

Mais Kjin a raison, dans quelle circonstance doit-on remplir ou non le textbox4 ?
 

Efgé

XLDnaute Barbatruc
Re : ordre de tabulation

Bonjour mikeo, Jean-Marcel, Yaloo, Bonjour kjin , Bonjour tototiti :), Salut Pierrot :)
Pas certain d'avoir bien saisi le sens de la demande, mais je fait une proposition, basée sur les
TextBox_Change() et TabIndex.

Cordialement
EDIT
J'ajoute une version b qui me semble plus logique à l'utilisation.
J'écris les saisies sur la feuille "pasquecliquerdanslevideçam'énerve" (c) Dull
Cordialement
 

Pièces jointes

  • setfocus(3).xls
    32 KB · Affichages: 71
  • setfocus(3b).xls
    35.5 KB · Affichages: 73
Dernière édition:

mikeo

XLDnaute Occasionnel
Re : ordre de tabulation - résolu

Bonsoir à tous,
Pour répondre à jkin : il s'agit de faire par exemple un fichier clients dont certains ont un n° de tél et d'autres non.
@Yaloo : Merci à toi car maintenant j'ai compris la différence entre begore_update, after_update et exit.

Merci tototiti, ton astuce est super car on ne voit pas qu'il y a plusieurs boutons valider. Mais j'adopte l'idée de Dull (version 3b) qui correspond tout à fait à mon problème en agissant directement sur les tabindex dans les codes. Merci à toi.

Mikeo
 

Statistiques des forums

Discussions
314 656
Messages
2 111 615
Membres
111 229
dernier inscrit
Arestas11