y'a pas de trouble.
Essaye, tu fais une forme avec 14 textbox.
Tu fais ton chemin en tcheck point comme j'ai fais.
Tu Make Appli.exe
et ca marrche
Version imprimable
y'a pas de trouble.
Essaye, tu fais une forme avec 14 textbox.
Tu fais ton chemin en tcheck point comme j'ai fais.
Tu Make Appli.exe
et ca marrche
er comment fais-tu, Ami Riesseg, en cas de focus à donner de façon conditionnelle (voir ce que j'ai dit pour une appli état-civil) ?
Tu t'embarrasses alors de propriétés enabled à modifier, hein .? pour que le tabindex passe à l'autre, hein ? et tu remodifies ensuite, hein ?
Je connais cette musique !
exemple simple (mais il y a beaucoup plus compliqué, d'avant en arrière et d'arrière en avant :
Un monsieur ne risque pas d'avoir un nom de jeune fille !
un autre ? un enfant non reconnu par son père n'a pas de père (donc pas de nom de père, de prénom de père, etc...)... facile en allant vers le bas, plus difficile en revenant en arrière !
Sur vb j'ai testé ça
suffit pour faire passer le focus de test4 à Text2 sans respect de tabindexCode:
1
2
3
4 Private Sub Text4_LostFocus() Text2.SetFocus End Sub
Si le pb est bien là
A+
beh je croit plus il est maintenant tout autre, le deplacement dans les textbox dans toutes les directions (haut, bas, gauche, droite).Citation:
Envoyé par ouskel'n'or
vrai , Ousk !
mais voyage ensuite entre deux seulement !:D
je viens d'essayer avec VB et 3 textboxes
dans la 1ère : ton code ===>>> va à la 3èùme directo (bon !)
mais j'appuie à nouveai sur tab et.... ne va jamais à la 2ème ! quel que soit le nombre de fois que j'appuie sur tab (pas bon, çà) !:lol:
en précisant que l'ordre des tabs est bien 0 puis 1 puis 2 et que tous les tabstop sont bien à true ...
Alors, comment fais-je, là ?
Tu vois pourquoi ? après le text3 (où il s'est rendu), le prochain est précisément te Text1 ===>> et donc le suivant : à nouveau le text3 (évidemment)
et quand le text2, alors ?
Edit :
Tiens ! il y a un ange qui passe...
Attention à ne pas me proposer une véritable usine à gaz pour s'en sortir ...:lol:
Ou comment on s'approprie les réponses des autres. 8-)Citation:
Envoyé par riesseg
Hello jemefe,
S'il s'agit d'utiliser les touches de direction pour sélectionner le contrôle que tu veux atteindre en quittant le contrôle actif il paraît nécessaire, si nécessaire, de faire le nécessaire (sans t'inquiéter de l'usine à gaz que tu es en train de construire)
J'ai placé 5 textbox
et écrit le code pour passer de 2 vers 1, 3, 4 et 5 par les touches de directionCode:
1
2
3
4 1 3 2 4 5
C'est bien ce que tu as fais avec if et sur trois textbox ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Text2_KeyUp(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 37 'Flèche gauche Text3.SetFocus Case 38 ' Haut Text1.SetFocus Case 39 ' droite Text4.SetFocus Case 40 ' bas Text5.SetFocus End Select End Sub
Reste à accorder ça pour chaque textbox mais ça m'amuse pas, je préfère fixer TabIndex par soft et c'est ce que je fais en VBA
A+
:D
Eh, Ousk...
On n'est déjà plus là dans la stratégie du lostfocus !:lol:
Le Keyup ? Là je suis d'accord ! C'est exactement la même chose que le Keydown et utilise le même keycode ...
Alors... on a tourné et retourné pour en revenir à l'utilisation du Keycode (par keydown ou Keyup = kif kif)
Et pourquoi tout celà ?
Simple : pour ne pas parcourir tout les contrôles d'une Form alors que l'on veut ne pouvoir voyager qu'entre les zones de saisie (et revenir en arrière au besoin), tout en utilisant le tab pour parcourir les autres contrôles (autres que les saisies). Tu vois ce que celà peut donner avec un questionnaire de 40 questions/réponses et plusieurs contrôles autres ?
Alors, pour une application destinée à rédiger un acte de l'état-civil, par exemple : tous les textboxes en groupe indexé - mémorisation de l'index du dernier saisi (pour y revenir par flêche arrière sans recommencer toutes les conditions logiques) - utilisation de tableaux logiques en "miroir" pour les conditions (une fois pour toutes), ce qui fait que lorsque l'on a saisi une textbox, on sait immédiatement à laquelle se rendre, en igorant totalement celles qui ne correspondent plus à ce cas ! Utilisation de la propriété tag pour gérer les cas particulier échappant à la logique préétablie des tableaux en "miroir". Imagine ce qu'impliquerait comme tracas et sources d'erreurs un autre procédé !
Le tout (puisque les renseignements nécessaires se répartissent sur 3 forms du fait de leur nombre) devant être accompagné de garde-fous tout le long (contrôle immédiat pour éviter le contrôle à postériori, du genre de ceux que tu subis lorsque tu ouvres un compte.... et que l'on ne te dit qu'à la fin qu'un renseignement est absent ou inacceptable.... On ne travaille pas ainsi :...c'est bien trop pénalisant....surtout avec l'état-civil..., mais également avec la comptabilité (pas celle de l'épicier du coin), le notariat, les inventaires, les bourses scolaires, et j'en passe !:lol:
Donc : gestion séparée de l'emploi du tabulateur et des flêches de direction... et, si bien organisé : peu de code pour gérer tout celà (logique préétablie dans les tableaux)
Je pense que je n'ai convaincu personne, mais qu'un jour ou l'autre l'un ou l'autre tombera sur un cahier des charges prévoyant et imposant celà, bien évidemment.
Je précise que l'exemple joint a été fait sous mon contrôle pour correspondre au niveau de "Marc", alors jeune débutant. Je me suis donc limité au plus compréhensible pour son niveau :lol:
Ok, jmf, je serais entièrement d'accord avec toi si, "depuis", on n'avait pas inventé la souris... qui "sursoit" avantageusement les cas complexes que tu évoques :mouarf:
A+
Ben non, Ousk , bien au contraire !
Pour l'état-civil ? Souris inhibée pour justement ne pas permettre de faire autrement que la logique de contrôle permanent (SOURIS INHIBEE)...
Tu vois ?
Allez...
je dois dormir, maintenant ;)
Bonne nuit.
Bon je vais répondre à Erzatz puisque, pour ce qui le concerne, c'est du VBA qui l'intéresse ;)
Hello Elstak, la discussion t'a intéressé ?
Je suppose que depuis TextBox4 tu souhaites retourner sur TextBox2
Pour aller ailleurs depuis ailleurs, reste plus qu'à adapterCode:
1
2
3
4 Private Sub TextBox4_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 9 Then TextBox2.SetFocus End Sub
Maintenant, si c'est pour retourner sur le contrôle précédent, la solution t'a été donnée : Shift + Tab
A+
NB - Tu as la possibilité de fixer la chronologie des contrôles visités en dur par la propriété tabIndex de chaque contrôle
Tu peux également faire ça par soft dans Sub Userform_initialize()
Salut tout l'monde
Extraordinaire, le débat!
Est-ce qu'un de vous a pensé à demander à Elstak ce qu'il voulait faire au juste?
Pour passer de textbox1 à textbox2... hum! C'est peut-être seulement un cas d'ordre de tabulation... Vous en êtes à la troisième page, les mecs! Surtout qu'on n'a pas relu Elstak depuis la page 1. À moins que je ne me trompe... y'a longtemps que c'est résolu!Citation:
Envoyé par Elstak
C'est ce que j'ai essayé de dire mais il y en a qui s'obstinent à vouloir donner une réponse compliquée à une question simple.
Hello vous deux, je vois que vous êtes toujours sur le pont...
Je suis assez d'accord avec vous... mais vous connaissez pas "Erzatz"... C'est le genre de gars pour à avoir renommé TextBox1 en textBox2 et inversement rien que pour se compliquer la vie et avoir le plaisir de poser une question sur le forum :rire: L'aime bien dialoguer...
Bref, ainsi il a toute la philosophie de la chose, aussi bien sur VB6 que sur VBA.
Ensuite, son plaisir, c'est de lancer des questions et d'aller se coucher rien que pour voir... :rire:
Bonne nuit à tousCitation:
Envoyé par Parce que... il
Bonjour tout le monde,
Non, je ne pense pas que cette discussion a été inutile, bien au contraire.
Je devine même (mais il nous le dira) que les 2 Textboxes d'Elstak ne sont pas côte à côte et que le voyage de l'une vers l'autre est conditionnel et dépend même, peut-être, d'autres contrôles encore (optionbuttons, checkboxes, listboxes,... par exemple).
A vrai dire, il peut s'agir là d'une chose assez complexe dans certains cas de figure.
Je pense même qu'il s'agit là d'un aspect à ce point important (celui des saisies logiques contrôlées) que je vais m'attacher à construire une appli de démonstration sur ce thème (avec utilisation des fameux tableaux "miroirs"), assortie d'un maximum de commentaires, et à la proposer pour la page sources. C'est, vous le verrez, un point non dénué d'intérêt. Nous y verrons comment traiter dans la même foulée les saisies "obligatoires", "obligatoires si", "interdites si", "facultatives si", "liées", etc...avec évolution possible de ces caractéristiques au fur et à mesure de la saisie.... (enfin, tout le tintsoin classique des saisies à logique contrôlée tout au long de l'utilisation de l'appli), avec le minimum de code. Je n'irai pas jusqu'à l'inhibition de la souris (pour ne faire courir aucun risque en cas d'interruption brutale), mais ferai en sorte que toute tentative de l'utiliser pour se rendre "où" il ne faut pas" s'avère vaine. (tiens ! une tisane ! ... je ne l'ai pas fait exprés, :lol: )
Une question (je n'ai pas vba moderne) en vue de traiter certains cas particuliers : la propriété tag existe-t-elle pour les contrôles sous VBA (car je vais m'efforcer de faire ce qui marcherait pour les 2 : VB et VBA)?
Oui, Tag existe sur les contrôles que j'ai vérifiés, y compris sur les images et sur les scrollbars.
Au poil !
Alors je vais "faire", car il y a un autre intérêt (que j'avais oublié) : évolution possible de l'application et souhait d'éviter d'avoir à "redisposer" tous les tabindex (fastidieux dans quelques cas).;)
Je m'y mets donc (tout de suite après)
:salo:Citation:
Envoyé par ouskel'n'or
(A croire que ce smiley a été fait pour ouskel :mouarf: )
En tout cas je vois que ca vous a occupé !! Vous ne vous etes pas ennuyé durant ce week end, alors qu'est ce qu'on dit?? :mouarf:
sinon en gros ce matin en voyant mon topic j'ai eu un choc 8O, jme suis dit olala je dois pas etre bien reveillé, mais si yavait bien 36 réponses 8O
Bref, je lis aussi vite que je suis bon en VBA (plus serieusement j'ai 3/4 autre truc à faire là) donc je testerai ca (je sais meme pas à quoi correspond mon "ca" tellement y'a de reponses :mouarf: ) cet aprem et en tout cas merci de vos réponses ;)