XL 2016 Ouvrir clavier virtuel en VBA7 (win10)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ahart68

XLDnaute Nouveau
Bonjour,
Je souhaiterais lancer le programme osk.exe (clavier virtuel) après un double clic dans une textbox d'un userform.
J'ai essayé plusieurs codes trouvés sur différents forums, en vain :-(
Via la commande SHELL, j'ai toujours l'erreur "Argument ou appel de procédure incorrect".
Le chemin c:\windows\system32\osk.exe fonctionne très bien néanmoins, mais pas via la comande SHELL.

Une idée ?

Dim RetVal
RetVal = Shell("c:\windows\system32\osk.exe", 1)

Merci d'avance !!!
 
Essayez ceci, cela fonctionne sur mon Pc, mais il a fallu que je dise à mon Anti-virus de ne pas bloquer les scripts lancés par Excel :
VB:
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Shell ("CMD /C " & """" & "C:\Windows\System32\osk.exe" & """")
End Sub
 
Merci à vous pour vos réponses plus que rapides !!

@fanch55 : merci mais j'avais déjà essayé ce code, même erreur...
@kiki29 : j'ai trouvé un bout de code qui fonctionne...finalement...grâce à ton lien.... 😎

J'ai copié le code ci-dessous, au cas où quelqu'un en aurait besoin :

Option Explicit
Dim lngPtr As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'Call Wow64DisableWow64FsRedirection prior to calling ShellExecute and Wow64RevertWow64FsRedirection, immediately after.
Private Declare Function Wow64DisableWow64FsRedirection Lib "kernel32.dll" (ByRef ptr As Long) As Boolean
Private Declare Function Wow64RevertWow64FsRedirection Lib "kernel32.dll" (ByRef ptr As Long) As Boolean

Private Function ShowKeyboard()
Call Wow64DisableWow64FsRedirection(lngPtr)
ShellExecute 0, "open", "osk.exe", "", "", vbNormalFocus
Call Wow64RevertWow64FsRedirection(lngPtr)
End Function

Private Function HideKeyboard()
Call Wow64DisableWow64FsRedirection(lngPtr)
ShellExecute 0, "open", "tskill", "osk", "", vbHidden
Call Wow64RevertWow64FsRedirection(lngPtr)
End Function
 
J'abuse....mais j'ai d'autres questions :

1) comment appelle-t-on une fonction ?
(je dois exécuter la fonction d'ouverture après un double clic sur mon textbox et la fonction fermeture quand je quitte l'userform)

2) comment définir l'emplacement de mon clavier à l'ouverture, pour qu'il ne cache pas la Textbox en question ?

Merci encore....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour