Word type de variables

Word type de variables - VB/VBA/VBS - Programmation

Marsh Posté le 06-09-2006 à 10:36:49    

Bonjour,  
 
Sous vba word j'ouve une input box :
 
rep=inputbox ("code touche" )
 
à laquelle je répond wdkeyF5
 
ce qui est équivalent à rep="wdkeyF5"
 
avec cette variable, je veux récupérer le raccouci clavier par
 
commande = FindKey(BuildKeyCode(rep)).Command
 
ceci plante
 
mais si je fais rep=wdkeyF5 (sans les guillemets) ça fonctionne
 
Quelqu'un connaitrait-il le moyen d'interpréter une string en constante wd...
 
Merci

Reply

Marsh Posté le 06-09-2006 à 10:36:49   

Reply

Marsh Posté le 06-09-2006 à 11:01:12    

Bonjour,
 
  Je n'ai rien trouvé qui solutionne ton problème facilement. Mais si tu regardes bien, les wdKey.. sont des Long:
CLng(wdKeyA) = 65
CLng(wdKeyShift) = 256
CLng(wdKeyControl) = 512
 
  Il faut donc convertit ta chaine en Long équivalent, et utiliser directement ce Long dans la commande:
 
KeyString(KeyCode:=BuildKeyCode(512, 256, 66)) = Ctrl+Maj+B
 
J'ai la liste des wdKey, si ça t'interesses.
 
Voilà.


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 06-09-2006 à 11:36:50    

Merci JiHemAir
 
J'avais bien compris qu'il fallait tranformer en long.
 
Mais la difficulté est que je veux passer par un inputbox, entrer wdkeyF5 et que ça me donne le raccourci.
 
La variable issue d'un inputbox est string (avec guillemets)
et  je dois passer l'argument "sans les guillemets"
 
Mon but fnal est le suivant:
 
Je veux modifier les raccourcis clavier suivant le contexte.
J'ai une multitude de boite de dialogue auxquelles je veux affecter un raccouci pour certains boutons(uniquement les touches F1 à F12).  
C'est très facile avec le champ accelerator des propriétés bouton (raccourci uniquement valable en combianant la touche avec Alt, ==> 2 touches).  
Mais là ou ça se complique est que je veux sélectionner du texte et exécuter le bouton, pour rendre accessible le reccourci du bouton je dois cliquer sur la boite de dialogue: c'est ce que je veux éviter
 
Pour ce faire je fais une macro qui simule le clic, et à cette macro j'affecte un raccourci. Par ce principe je n'ai plus à cliquer sur la bote de dialogue(gain de temps pur grosse production)
 
Pour pouvoir faire ceci une fois sorti d'un contexe, je dois rétablir les raccourcis par défaut.
 
C'est pourquoi avant de développer un raccourci, jeveux verifier ce qu'il fait de base.
 
Ouf j'espère avoir été assez clair
 
A+

Reply

Marsh Posté le 06-09-2006 à 12:03:03    

Ok,
 
  Ce que je voulais dire, c'est qu'il est possible de transformer la chaine en long, avec une batterie de if then.
 
If StrComp(rep, "wdKeyA", vbTextCompare) = 0 Then
    repLong = 65
ElseIf StrComp(rep, "wdKeyB", vbTextCompare) = 0 Then
    repLong = 66
.......
 
je sais, c'est bourrin.
 


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Sujets relatifs:

Leave a Replay

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