Word type de variables - VB/VBA/VBS - Programmation
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à.
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+
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.
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