[VBA Excel] Keycode -> ? [Résolu]

Keycode -> ? [Résolu] [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 23-02-2011 à 17:07:39    

Bonjour,
 
Malgrès les diverses recherches sur le net, je voudrais savoir s'il existe un numéro de KeyCode pour le point d'interrogation!?
 
En effet dans une petite application je souhaite que lorsque l'on appuie sur la touche "," (? en mode majuscule) que l'on ait toujours la virgule qui apparaisse. J'ai réussi la manipulation avec la touche "." du pavés numérique:
 
Code:  
 

Code :
  1. Private Sub MOD_TextBox_02_Quantité_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  2. '*******************************'
  3. '* Change la touche "." en "," *'
  4. '*******************************'
  5. 'Procédure'
  6. If KeyCode = vbKeyDecimal Then
  7.     KeyCode = 188
  8. End If
  9. End Sub


 
L'interêt est que l'on puisse avoir toujours la virgule de saisie à la place du point ou du point d'interrogation et ce même si CapLock est activé.
 
Merci d'avance.


Message édité par mmarle le 25-02-2011 à 22:41:35
Reply

Marsh Posté le 23-02-2011 à 17:07:39   

Reply

Marsh Posté le 23-02-2011 à 20:42:10    

Salut,voir un pot pourri sur http://cjoint.com/?3cxuRexIyoE
Je sais,il y a plus simple,mais là tu as tout


Message édité par kiki29 le 23-02-2011 à 21:41:53
Reply

Marsh Posté le 25-02-2011 à 10:26:14    

Ca serait plus simple de passer par le KeyPress

Citation :

dans le KeyDown tu obtiens un code de VB ; alors que dans le KeyPress c'est un code ASCII


Et le ? a un code ascii = 63
 
Attention toutefois, Excel (Microsoft) utilise aussi le ? comme caractère générique. Par exemple faire une recherche sur un mot avec un accent sans savoir si celui-ci a été saisi avec ou sans accent.
Par exemple quelqu'un qui cherche "mémé" mais ne sait pas si "mémé" a ete saisi avec ou sans accent fera une recherche comme ca :
m?m?
Et Excel recherche toutes les occurence avec les m
méme
mémé
mrmp
mama
etc.
 
Donc le ? dans Excel est plus que pratique, fais un essai avec Recherche (Ctrl+H)


Message édité par SuppotDeSaTante le 25-02-2011 à 10:38:35

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 25-02-2011 à 22:39:14    

Merci à vous deux,
 
Vous venez encore de remettre un mouton dans le droit chemin!
 
Je peux donc remplacer mon code précédent par celui-ci:
 

Code :
  1. Private Sub MOD_TextBox_02_Quantité_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  2. '****************************************'
  3. '* Change les touches "." et "?" en "," *'
  4. '****************************************'
  5. 'Procédure
  6. If KeyAscii.Value = 46 Then
  7.     KeyAscii.Value = 44
  8. ElseIf KeyAscii.Value = 63 Then
  9.     KeyAscii.Value = 44
  10. End If
  11. End Sub


 
Qu'est ce qu'il est bien ce forum!
 
Et encore merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed