"Ré-initialiser" fonction KeyDown
Résolu/Fermé
A voir également:
- "Ré-initialiser" fonction KeyDown
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Snapchat ils m'ont ajouté par la fonction recherche - Forum Snapchat
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
9 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 2/12/2013 à 13:55
Modifié par lermite222 le 2/12/2013 à 13:55
Bonjour,
1°)..ces lignes de code ne sont pas nécessaires, ça se fait automatiquement quand on clic.
Si ont tape "a" If Chr(KeyCode) = "a" Then ' ta condition donne "A"
Pour remédier à cela, mettre la ligne de code ci-dessous tout en haut du module.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
1°)..ces lignes de code ne sont pas nécessaires, ça se fait automatiquement quand on clic.
Private Sub OptionButton1_Click()et les remplacer par...
'Me.Flag_EN.Visible = False
'Me.Flag_FR.Visible = True
End Sub
Private Sub OptionButton2_Click()
'Me.Flag_EN.Visible = True
'Me.Flag_FR.Visible = False
End Sub
Private Sub OptionButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)2°) Ce n'est pas le KeyDown qui ne fonctionne pas mais la condition..
UserForm_KeyDown KeyCode, Shift
End Sub
Private Sub OptionButton2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
UserForm_KeyDown KeyCode, Shift
End Sub
Si ont tape "a" If Chr(KeyCode) = "a" Then ' ta condition donne "A"
Pour remédier à cela, mettre la ligne de code ci-dessous tout en haut du module.
Option Compare TextCa ne fera plus de différence entre majuscule et minuscule.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Merci d'avoir pris le temps de regarder ma question.
Ta réponse me laisse cependant perplexe car j'ai testé tes lignes de codes et...
- 1) j'ai remplacé les lignes de code par celles que tu proposes et il ne se passe rien. Il faut quand même bien écrire l'action qu'on veut faire. Et là, c'est un exemple simple que j'ai fait, pour essayer de trouver une solution mais l'application finale, tu t'en doutes, est plus complexe.
-2) j'ai mis "option compare text" et cela ne change rien.
Aussi curieux que cela puisse paraître, sur mon PC, le chr(keycode) de la touche numérique 1 donne a minuscule. J'avais fait mes premiers essais avec les lettres A/B/C et j'avais le même problème de "désactivation". J'ai choisi le pavé numérique, parce que cela me semble plus simple pour l'utilisateur.
Ta réponse me laisse cependant perplexe car j'ai testé tes lignes de codes et...
- 1) j'ai remplacé les lignes de code par celles que tu proposes et il ne se passe rien. Il faut quand même bien écrire l'action qu'on veut faire. Et là, c'est un exemple simple que j'ai fait, pour essayer de trouver une solution mais l'application finale, tu t'en doutes, est plus complexe.
-2) j'ai mis "option compare text" et cela ne change rien.
Aussi curieux que cela puisse paraître, sur mon PC, le chr(keycode) de la touche numérique 1 donne a minuscule. J'avais fait mes premiers essais avec les lettres A/B/C et j'avais le même problème de "désactivation". J'ai choisi le pavé numérique, parce que cela me semble plus simple pour l'utilisateur.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
2 déc. 2013 à 19:03
2 déc. 2013 à 19:03
Oui, ta demande est plus compliquée que je ne pensais, j'examine ça et je revient, probablement demain.
A+
A+
D'un côté, je suis désolé que ce soit plus compliqué que prévu, de l'autre, cela me rassure...
Que cela ne te fasse quand même pas faire des cauchemars...
Bonne soirée
Jean
Que cela ne te fasse quand même pas faire des cauchemars...
Bonne soirée
Jean
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
3 déc. 2013 à 15:23
3 déc. 2013 à 15:23
Re,
Un exemple
Je pense que c'est ce que tu veux.
A+
Un exemple
Je pense que c'est ce que tu veux.
A+
Bonsoir,
Merci beaucoup pour ton fichier. J'ai testé, j'ai même fait quelques ajouts pour voir si je comprenais comment cela fonctionnait. Tout roule.
En fait, il faut attribuer un code à chaque élément présent sur le formulaire, ce qui permet à la fonction keydown d'être toujours active. C'est une approche intéressante.
Encore merci de ton aide et de ton temps
Bonne soirée,
Jean
Merci beaucoup pour ton fichier. J'ai testé, j'ai même fait quelques ajouts pour voir si je comprenais comment cela fonctionnait. Tout roule.
En fait, il faut attribuer un code à chaque élément présent sur le formulaire, ce qui permet à la fonction keydown d'être toujours active. C'est une approche intéressante.
Encore merci de ton aide et de ton temps
Bonne soirée,
Jean
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
4 déc. 2013 à 15:16
4 déc. 2013 à 15:16
Re,
J'ai fais le premier exemple en employant les événements de chaque contrôle mais ce système pourrait devenir lourd si tu a beaucoup de contrôles sur ton UF.
Celui-ci ne comprend que quelque lignes de code plus un module de classe.
Le nombre de contrôles sur l'UF pourrait être beaucoup plus élevé sans devoir ajouter une seule ligne de code sauf, bien entendu, le traitement des actions de ces contrôles.
Note: j'ai remplacer les 3 checkBox par des options, ça répond mieux à ce que tu en fait.
Exemple version 2
A+
J'ai fais le premier exemple en employant les événements de chaque contrôle mais ce système pourrait devenir lourd si tu a beaucoup de contrôles sur ton UF.
Celui-ci ne comprend que quelque lignes de code plus un module de classe.
Le nombre de contrôles sur l'UF pourrait être beaucoup plus élevé sans devoir ajouter une seule ligne de code sauf, bien entendu, le traitement des actions de ces contrôles.
Note: j'ai remplacer les 3 checkBox par des options, ça répond mieux à ce que tu en fait.
Exemple version 2
A+
Bonsoir,
Je viens de regarder rapidement ton nouvel exemple. Vraiment, merci beaucoup. Je vais étudier cela en détail. Justement, je me posais la question il y a quelques jours des modules de classe. J'ai fait quelques recherches sur le net, sans plus. Avec un exemple concret, cela sera plus facile.
Dans l'application que j'ai prévu (un quizz), il y aura peu de contrôles par UF, donc ta première solution pouvait convenir, mais on ne sait jamais. Cela ouvre pas mal de perspectives.
Encore merci.
Bonne soirée,
Jean
Je viens de regarder rapidement ton nouvel exemple. Vraiment, merci beaucoup. Je vais étudier cela en détail. Justement, je me posais la question il y a quelques jours des modules de classe. J'ai fait quelques recherches sur le net, sans plus. Avec un exemple concret, cela sera plus facile.
Dans l'application que j'ai prévu (un quizz), il y aura peu de contrôles par UF, donc ta première solution pouvait convenir, mais on ne sait jamais. Cela ouvre pas mal de perspectives.
Encore merci.
Bonne soirée,
Jean
Bonjour et bonne année !
Même si j'avais clos cette discussion, je préfère revenir directement vers toi pour ajouter une variante sur un sujet que tu sembles bien maitriser.
J'ai adopté ta seconde solution qui est plus propre et plus légère dans un formulaire.
Cette solution est appliquée pour un quizz dans laquelle j'ai un chronomètre. Je suis reparti d'un jeu que j'avais créé dans lequel on clique sur la réponse choisie. Là, j'arrive à arrêter le chrono au clic.
Avec la solution touche numérique, je perds la main dès que le chrono est lancé et la fonction DoEvents semble inopérante.
J'ai introduit le chrono dans le fichier que tu m'avais envoyé :
http://cjoint.com/?0AqljJd2yA7
Si tu as une idée sur le sujet, je suis preneur.
D'avance, merci
Jean
Même si j'avais clos cette discussion, je préfère revenir directement vers toi pour ajouter une variante sur un sujet que tu sembles bien maitriser.
J'ai adopté ta seconde solution qui est plus propre et plus légère dans un formulaire.
Cette solution est appliquée pour un quizz dans laquelle j'ai un chronomètre. Je suis reparti d'un jeu que j'avais créé dans lequel on clique sur la réponse choisie. Là, j'arrive à arrêter le chrono au clic.
Avec la solution touche numérique, je perds la main dès que le chrono est lancé et la fonction DoEvents semble inopérante.
J'ai introduit le chrono dans le fichier que tu m'avais envoyé :
http://cjoint.com/?0AqljJd2yA7
Si tu as une idée sur le sujet, je suis preneur.
D'avance, merci
Jean