.changement de focus

  • Initiateur de la discussion evelynetfrancois
  • Date de début
E

evelynetfrancois

Guest
bonjours le forum
voici mon probleme

Est-il possible de changer de focus à la suite d'un "ENTER".

concretement
Une fois le choix fait parmis la liste proposée je fais ENTRER et là j'aimerais que le focus change(comme le fais d'ailleurs la touche tab)
soit ecrit en dur dans la macro ,soit en suivant l'ordre de tab

du genre
If [(enter)] = True Then
listbox2.SetFocus
end if

Evelynetfrancois
 
L

LaurentTBT

Guest
Bonsoir à tous.

Petite question: le Enter est-il obligatoire?
Car on peut provoquer le changement de focus vers la listbox2 dès qu'une sélection est effectuée dans listbox1 ainsi:

Private Sub ListBox1_Change()
ListBox2.SetFocus
End Sub

Dans ce cas, dès qu'une selection est faite en list1, le focus passe automatiquement à la liste 2.

Si vous voulez vraiment appui sur Enter entre temps, j'ai une petite idée, mais assez tordue, et dans ce cas, je dois savoir si ceci ne sera valable que pour la list1, ou pour d'autres listes aussi.

Bonne soirée. Laurent.
 
E

evelynetfrancois

Guest
Bonjour LaurentTBT
, Oui c'est vrai que lorsque je clique sur un item de la listebox1 à l'aide de la souris la tab change de focussans problème

Mais 'tout au clavier' si je le sélectionne à l'aide du pave 4 flèches du clavier
il faut nécessairement valider le choix ,,et sans le click de souris je ne sais
pas comment faire.( " Entrée " reste inactif)
Je penser donc à la touche "Entrée" qui parait évidente pour éviter soit de reprendre la souris soit de faire press tabulation (à gauche du "A" sur clavier)
trop compliquer pour des utilisateurs temporaires et non initiés.
Si vous avez une idées lumineuse je vous en remercie d'avance
sur ce bonne journée
Evelynetfrancois
 
L

LaurentTBT

Guest
Bonjour Evelyne et François.

J'ai effectivement une idée qui, à défaut d'être lumineuse, est particulièrement tordue.
Je dois m'absenter pour quelques heures, et j'essaierai plus tard un petit exemple, en espérant que ce que j'ai en tête soit effectivement réalisable. J'espère pouvoir vous répondre d'ici ce soir.

Bonne journée. Laurent.
 
L

LaurentTBT

Guest
Bonsoir à tous.

Bon, j'ai fait un petit userform avec plusieurs contrôles, et là, surprise:
Enter a le même effet que tab pour le passage du focus d'un contrôle au contrôle suivant, dans l'ordre donné aux propriétés tabindex des focus, et pour lesquels la propriété tabstop est à true.

Peut-être est-ce du au fait que je suis sous excel XP?

Tout ce que je sais, c'est qu'il ne faut pas qu'il y ait un commandbutton dont la propriété default serait à true (car dans ce cas, l'appui sur enter provoquerait l'événement click de ce bouton).

Dites-moi si c'est OK pour vous.

@+. Laurent.
 

Pièces jointes

  • SetFocusSuiteEnter.zip
    12.4 KB · Affichages: 18
  • SetFocusSuiteEnter.zip
    12.4 KB · Affichages: 19
  • SetFocusSuiteEnter.zip
    12.4 KB · Affichages: 23
E

evelynetfrancois

Guest
bonjour LaurentTBT

plutôt qu'une longue explication , voici un fichier joint!!
bonne journée et merci .
Evelynetfrancois
 

Pièces jointes

  • SetFocusSuiteEnter.zip
    13.8 KB · Affichages: 18
  • SetFocusSuiteEnter.zip
    13.8 KB · Affichages: 18
  • SetFocusSuiteEnter.zip
    13.8 KB · Affichages: 20
L

LaurentTBT

Guest
Bonsoir à tous.

J'étais en effet allé un peu vite: les listbox ne réagissent pas à Enter (pourquoi pas eux alors que les combobox le font).
Du coup, si on peux utiliser une combobox plutôt qu'une liste box, cela simplifiera grandement le problème.

Sinon, j'ai enfin réussi, après quelques difficultés, à faire fonctionner mon idée tordue (cf fichier joint). J'ai essayé d'expliquer le code. La complexité vient du fait que j'ai voulu qu'il fonctionne pour un userform contenant plusieurs listbox. Sinon, on peut tout simplifier sans faire toutes les boucles qui vont chercher automatiquement quel est le contrôle qui doit prendre le focus à la suite. S'il n'y a qu'une ou deux listbox, on peut désigner nomément le contrôle suivant.

Bonne soirée à tous.

PS: c'était un petit sujet entre Nancéens!
 

Pièces jointes

  • SetFocusSuiteEnter.zip
    21.2 KB · Affichages: 25
  • SetFocusSuiteEnter.zip
    21.2 KB · Affichages: 20
  • SetFocusSuiteEnter.zip
    21.2 KB · Affichages: 23
E

evelynetfrancois

Guest
l'exemple complet me provoque un beug Xl lol.........
mais l'exemple plus simple me convient apparemment parfaitement
il ne me reste plus qu'a l'intégrer dans les macros existantes est faire les essais habituels
Aujourd'hui je n'aurais malheureusement que peu de temps mais je te tiendrais au courant des événement.
bonne journée et encore merci.

P.S. pour l'anecdote St Max précisément
Evelynetfrancois
 
L

LaurentTBT

Guest
Bonjour à tous.

Peux-tu me préciser ce qui provoque le beug? Et sous quelle version es-tu? (moi, j'ai fait le fichier sous Windows XP, excel XP)

Sinon, après réflexion, le code complet est vraiment compliqué, et finalement, il y a peu de chances qu'il soit vraiment utile (il est rare d'avoir 36 listbox dans un même UserForm). Si tu as plus d'un ListBox (2 ou 3), on peut faire un mélange des deux exemples. Dis-moi si ça t'intéresse, et dans ce cas, mets si possible une pièce jointe avec ton userform.

Bonne journée.

P.S: moi, c'est Heillecourt, et je suis un ancien de Poinca (années 80)
 
E

evelynetfrancois

Guest
Bonjour laurentTBT
Il ne s'agit pas d'un beug de macro mais d'un beug
system
,dés lors que je lance l'usf 1 par click bouton ou F5 ; F8 dans projet
le system plante!!!!!!!!!! cela dit ce n'est "plus "un problème pour moi
l'usf 2 fonctionnent parfaitement.

les macros que tu as trouvé me solutionnent mon problème

je suis sur Windows 95 première version avec Excel 97 et oui il y en a encore et j'y tiens lol.;
je peux éventuellement transférer mon doc sur ta Bal 128 ko zippé
pour que tu vois ce que ça donne (si tu veux?)
en tout cas merci et bonne journée
Evelynetfrancois

P.S.: CET Tomblaine (77)faute de mieux !
 
L

LaurentTBT

Guest
Bonjour à tous.

Ben si c'est un bug système, alors là, ça dépasse largement mes compétences. J'essaierai sur Excel 2000.

Pour l'envoi du fichier dans ma bal, no problem. Je serai pas mal absent ces prochains jours, mais je trouverai bien un petit moment pour y jeter un coup d'oeil.

Bon week end à tous.
Laurent.
 
L

LaurentTBT

Guest
Bonjour à tous.

Evelyne et François,

en répondant à Michel dans ce fil:
Lien supprimé

j'ai trouvé beaucoup plus simple:

Private Sub ListBox1_Keydown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then ContrôleSuivant.SetFocus
End Sub

à mettre pour chaque listbox, en remplaçant ContrôleSuivant par ce qui va bien, et A CONDITION de ne pas avoir sur l'UserForm de CommandButton avec la propriété Défault à true. Plus besoin de passer par le bouton caché.

Allez, bonne fin de week-end.

Laurent.
 

Discussions similaires

Réponses
4
Affichages
407

Statistiques des forums

Discussions
313 908
Messages
2 103 474
Membres
108 677
dernier inscrit
T.Munz